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 кнопки при нажатии кнопки