frm.showDialog утилизировать, когда openFileDialog закрывается [vb.net]

У меня есть две формы. Первая форма используется для отображения набора записей, а вторая форма используется для редактирования конкретной записи. Я вызвал вторую форму, используя frm.ShowDialog(). Внутри этой формы я получил кнопку для вызова OpenFileDialog. Когда я нажимаю ОК или Отмена, тогда вторая форма удаляется вместе с OpenFileDialog. Я довольно должен, чтобы мой код был правильным, но это была проблема ShowDialog (). У кого-нибудь есть идеи по этому вопросу?

Вот как я вызвал вторую форму из первой формы для отображения информации.

Private Sub btnViewOrganizationEdit_Click(sender As Object, e As EventArgs) Handles btnViewOrganizationEdit.Click, dgvOrganization.DoubleClick
    Dim selectedOrganization As New Organization
    'check permission because double click
    If dgvOrganization.RowCount > 0 Then
        strOrganizationID = dgvOrganization.SelectedRows.Item(0).Cells(0).Value
        selectedOrganization = helperOrganizationCKJ.getOrganizationByID(strOrganizationID)
        frmEditOrganizationCKJ.objOrganization = selectedOrganization
        frmEditOrganizationCKJ.ShowDialog()
        iniGridView()
    End If
End Sub

Вот как я назвал OpenFileDialog.

Private Sub btnEditOrganizationImage_Click(sender As Object, e As EventArgs) Handles btnEditOrganizationImage.Click
    dlgImage.Filter = ""
    Dim codecs() As ImageCodecInfo = ImageCodecInfo.GetImageEncoders()
    Dim sep As String = String.Empty
    For Each c As ImageCodecInfo In codecs
        Dim codecName As String = c.CodecName.Substring(8).Replace("Codec", "Files").Trim()
        dlgImage.Filter = String.Format("{0}{1}{2} ({3})|{3}", dlgImage.Filter, sep, codecName, c.FilenameExtension)
        sep = "|"
    Next
    dlgImage.FilterIndex = 5

    If dlgImage.ShowDialog(Me) = DialogResult.OK Then
        'Get the image name
        Dim img = dlgImage.FileName
        picEditOrganizationImage.Image = System.Drawing.Bitmap.FromFile(img)
    End If
End Sub

FrmEditOrganizationCKJ просто удаляется вместе с утилитой OpenFileDialog.

1 ответ

Решение

Возможно, вы скопировали / вставили свой btnEditOrganizationImage из кнопки, для свойства DialogResult которой установлено значение, отличное от DialogResult.None.

Это запускает закрывающее действие для вашей модальной формы, и исправление действительно простое.
Установите свойство DialogResult для btnEditOrganizationImage, чтобы DialogResult.None

Из MSDN на Button.DialogResult

Если для DialogResult для этого свойства установлено значение, отличное от None, и если родительская форма отображалась с помощью метода ShowDialog, нажатие кнопки закрывает родительскую форму без необходимости подключения каких-либо событий. Свойство DialogResult формы затем устанавливается равным DialogResult кнопки при нажатии кнопки

Другие вопросы по тегам