System.ObjectDisposedException при закрытии формы в vb.net - PullRequest
0 голосов
/ 25 апреля 2018

У меня странная ошибка, и я уверен, что это что-то очень простое, но я никак не могу понять, что происходит.Я думал, что правильно открывал и закрывал формы, но, похоже, что-то не так.Я работаю с VS 2015. У меня есть программа, которая закрывается при закрытии последней формы.Сейчас я использую две формы.

Панель инструментов

Public Class frmDashboard
    Private Sub recExit_Click(sender As Object, e As EventArgs) Handles recExit.Click
        Me.Close()
    End Sub

    Private Sub recMember_Click(sender As Object, e As EventArgs) Handles recMember.Click, lblMember.Click

        'Create instance of Member Form
        Dim memberForm As New frmMember

        'Open an instance
        memberForm.Show()

        Me.Close()

        'Using this code test if the form window is still open
        For Each frm As Form In Application.OpenForms
            MessageBox.Show(frm.Name)
        Next


    End Sub
End Class

Форма участника

Public Class frmMember

    Private Sub frmMember_Load(sender As Object, e As EventArgs) Handles Me.Load
        ShowSpouse(rdoMarried.Checked)
    End Sub

    Private Sub ShowSpouse(ByRef isMarried As Boolean)

        If isMarried Then
            'Marital status is set to married lets show the extra spouse information

            'Lets first make the form larger
            Me.Size = New Size(793, 576)

            'Now lets unhide the form
            pnlSpouse.Visible = True
            'pnlSpouse.Enabled = True

            lblSpouse.Visible = True
            'lblSpouse.Enabled = True

            lineSpouse.Visible = True
            'lineSpouse.Enabled = True

            'Now lets move the buttons to their new location
            btnApply.Location = New Point(624, 541)
            btnExit.Location = New Point(710, 541)

        Else 
            'Single is Selected
            'Let's make sure all the spouse information is hidden

            'Lets first make the form smaller
            Me.Size = New Size(793, 358)

            'Now lets hide the form and disable the controls
            pnlSpouse.Visible = False
            'pnlSpouse.Enabled = False

            lblSpouse.Visible = False
            'lblSpouse.Enabled = False

            lineSpouse.Visible = False
            'lineSpouse.Enabled = False

            'Now lets move the buttons to their new location
            btnApply.Location = New Point(624, 320)
            btnExit.Location = New Point(710, 320)
        End If

    End Sub

    Private Sub MaritalStatusChanged(sender As Object, e As EventArgs) Handles rdoSingle.CheckedChanged, rdoMarried.CheckedChanged
        ShowSpouse(rdoMarried.Checked)
    End Sub

    Private Sub btnExit_Click(sender As Object, e As EventArgs) Handles btnExit.Click

        Dim dashboard As New frmDashboard 
        'Open the dashboard
        dashboard.Show()

        'Close the member form
        Me.Close()



    End Sub
End Class

Я не добавил в нее базу данных, но в конце концов загрузлюданные в форму членов.Когда я щелкаю, чтобы открыть форму членов, она проходит и запускает код в событии загрузки формы для формы участников, но затем возвращает фокус обратно в форму панели мониторинга.Запускает Me.Close на приборной панели, но как только он попадает в End Sub, то когда выбрасывается это исключение:

System.ObjectDisposedException was unhandled
Message: An unhandled exception of type 'System.ObjectDisposedException' occurred in System.Windows.Forms.dll
Additional information: Cannot access a disposed object.

Любая помощь, которую вы, ребята, можете оказать, будет принята с благодарностью.

...