在做界面的时候,有的时候须要推断控件是否为空,假设窗口就有一个须要推断那无所谓,直接写一个函数调用即可。但是有的时候窗口中须要推断非常多控件,比方说注冊时那么多的信息都须要推断,还有就是组合查询一类的等等一些信息,这时候再用调用函数就显得异常麻烦了,由于每个都须要进行推断,这得反复非常多遍。
当然有问题就有解决方法。由于推断的控件都是来自一个窗口,所以仅仅须要编写一个函数,循环遍历窗口的每个控件即可。详细例如以下:
<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