Как предотвратить закрытие формы без использования события FormClosing
Я недавно начал изучать VB.net с Visual Studio 2010, и пока у меня все отлично, но я застрял с этой проблемой в течение нескольких часов, и после многих страниц поиска в Google и переполнения стека я пришел к вам,
У меня есть 2 формы: одна, в которую вы помещаете данные о людях, и она попадает в базу данных, а другая, которая позволяет осуществлять поиск по типу документа и номеру документа, назовем их Form1 и Form2. Дело в том, что когда пользователь нажимает "ОК" на форме 2, а либо документ, либо тип документа пустые, msgbox показывает, что им нужно заполнить текстовое поле, но форма закрывается после этого, поэтому я хочу предотвратить закрытие формы, если пользователь нажимает ОК, и любое поле остается пустым.
Мое событие нажатия кнопки ОК на форме form2 (где я бы хотел, чтобы форма не закрывалась):
Private Sub cmd_ok_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmd_ok.Click
If Me.txt_dni.Text = "" Then
MsgBox("Numero Documento vacio", vbOKOnly + vbCritical, "Atencion")
Me.txt_dni.Focus()
Exit Sub
End If
If Me.cmb_tdoc.SelectedIndex = -1 Then
MsgBox("Tipo de Documento vacio", vbOKOnly + vbCritical, "Atencion")
Me.cmb_tdoc.Focus()
Exit Sub
End If
End Sub
Где я получаю значения от Form2 до его родителя, form1; Я вызываю эту функцию, когда мне нужно посмотреть кого-то в сетке данных, используя тип документа и номер документа:
Частная функция abrir_form2(ByRef rdoc2 как целое число, ByRef rtdoc2 как целое число)
Тусклый диалог как Form2
Dim doc2 As Integer
Dim tdoc2 As Integer dialog = New Form2()
Dim result As DialogResult = dialog.ShowDialog(Me)
doc2 = dialog.doc2
tdoc2 = dialog.tdoc2
rdoc2 = doc2
rtdoc2 = tdoc2
Return vbNull
End Function
Обе формы: http://i.imgur.com/n1EwfiW.png
Может быть, есть другой способ сделать это? Любой другой способ решить эту проблему?
Заранее спасибо!
1 ответ
Я думаю, что у вас есть DialogResult
свойство этого Button
установить что-то другое, чем None
, В этом случае, нажав на это Button
назначит это же значение DialogResult
свойство формы. Если форма была отображена с помощью ShowDialog
, установив его DialogResult
собственность закроет его. Если вы не хотите закрывать форму каждый раз, когда Button
нажимается, то не устанавливайте его DialogResult
имущество. Вместо этого установите DialogResult
свойство формы явно в Click
событие Button
если и только если вы хотите закрыть форму.