我最近开始使用Visual Studio 2010开始学习VB.net,到目前为止,我做得很好,但是我已经在这个问题上坚持了好几个小时了。 google和stack overflow搜索我来找你。
我有2个表单,一个用于放置人员数据并将其转到数据库,另一个用于允许您根据文档类型和文档编号进行搜索,我们将其称为Form1和Form2。事实是,当用户在表单2上按OK并且文档或文档类型为空时,msgbox会显示告诉他们填充文本框,但表单在此之后关闭,所以我想要做的是阻止表单关闭用户按OK,任何字段为空。
我在form2上的OK按钮点击事件(我希望阻止表单关闭):
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;当我需要使用文档类型和文档编号查看datagridview上的某个人时,我调用此函数:
Private Function abrir_form2(ByRef rdoc2 As Integer, ByRef rtdoc2 As Integer)
Dim dialog As 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
也许有另一种方法可以做到这一点?还有其他方法可以解决这个问题吗?
提前致谢!
答案 0 :(得分:0)
我的猜测是,DialogResult
的{{1}}属性设置为Button
以外的其他属性。在这种情况下,单击None
会将相同的值分配给表单的Button
属性。如果使用DialogResult
显示表单,则设置其ShowDialog
属性将关闭它。如果您不想关闭每时间,请点击DialogResult
,然后不要设置其Button
属性。相反,当且仅当您要关闭表单时,才在DialogResult
的{{1}}事件中明确设置表单的DialogResult
属性。