2016-10-08 2 views
1

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

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

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.

+0

Я не понимаю вопрос или проблему. Форма, показанная как ShowDialog, не удаляется, когда вы ее закрываете, ваш 'frmEditOrganizationCKJ' выйдет из области действия, когда он закроется. Также похоже, что у вас действительно есть 3 формы: первая форма, 'frmEditOrganizationCKJ' и' dlgImage' – Plutonix

+0

@Plutonix. На самом деле родительское диалоговое окно закрывается с дочерним диалоговым окном. –

ответ

0

Возможно у вас есть копировать/вставить свой btnEditOrganizationImage с помощью кнопки, которая имеет DialogResult набор свойств что-то другое, чем DialogResult.None.

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

Из MSDN на Button.DialogResult

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

+0

О, я вижу. Я копирую из корневой формы, которая также имеет одну и ту же кнопку для вызова OpenFileDialog, а для параметра DialogResult установлено значение Отмена. –

Смежные вопросы