Как предотвратить закрытие формы без использования события 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 если и только если вы хотите закрыть форму.

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