在做界面的时候,有的时候须要推断控件是否为空,假设窗口就有一个须要推断那无所谓,直接写一个函数调用即可。但是有的时候窗口中须要推断非常多控件,比方说注冊时那么多的信息都须要推断,还有就是组合查询一类的等等一些信息,这时候再用调用函数就显得异常麻烦了,由于每个都须要进行推断,这得反复非常多遍。
当然有问题就有解决方法。由于推断的控件都是来自一个窗口,所以仅仅须要编写一个函数,循环遍历窗口的每个控件即可。详细例如以下:
<span style="color:#009900;"> ''' <summary>
''' 推断窗口中全部控件是否为空
''' </summary>
''' <param name="frm">窗口变量</param>
''' <returns>为空返回True,不为空返回False</returns>
''' <remarks></remarks></span>
Public Function IsAllEmpty(ByVal frm As Form) As Boolean
Dim control As New Control
For Each ct1 As Control In frm.Controls
If ct1.GetType() Is GetType(TextBox) Then
If ct1.Text.Length = 0 Then
MsgBox("信息不完整,请把信息填写完整")
ct1.Focus()
Return True
Exit Function
End If
ElseIf ct1.GetType Is GetType(ComboBox) Then
If ct1.Text.Length = 0 Then
MsgBox(ct1.Tag.ToString + "不能为空!")
ct1.Focus()
Return True
Exit Function
End If
End If
Next
Return False
End Function
<span style="color:#009900;"> ''' <summary>
''' 推断部分控件是否为空
''' </summary>
''' <param name="arrayCt1">控件集合</param>
''' <returns>为空返回True,不为空返回False</returns>
''' <remarks></remarks></span>
Public Function SomeIsEmpty(ByVal arrayCt1() As Control) As Boolean
Dim control As New Control
For Each ct1 As Control In arrayCt1
If ct1.GetType() Is GetType(TextBox) Then
If ct1.Text.Length = 0 Then
MsgBox(ct1.Tag.ToString + "不能为空!", vbOK, "提示信息")
ct1.Focus()
Return True
Exit Function
End If
ElseIf ct1.GetType() Is GetType(ComboBox) Then
If ct1.Text.Length = 0 Then
MsgBox(ct1.Tag.ToString + "不能为空!", vbOK, "信息提示")
ct1.Focus()
Return True
Exit Function
End If
End If
Next
Return False
End Function