我想使这个方法更通用,并且可以接受规则的例外,而不必每次都发生异常时手动输入每个TextBox。
我使用此方法检查是否有任何TextBox是空的。我想让中间的首字母和电话号码可选,但我似乎无法得到正确的结果。
如果可能,我希望能够将异常作为参数传递,所以我可以把它放在一个模块中。
编辑:这是一个Windows应用程序
Private Function CheckIfEmpty() As Boolean
'Checks if All textboxes are empty
Dim empty = Me.Controls.OfType(Of TextBox)().Where(Function(txt) txt.Text.Trim.Length = 0)
If empty.Any Then
'Makes Middle Initial and Phone number optional
If txtMiddleInitial.Text.Trim = "" Or txtPhoneNum.Text.Trim = "" Then
MsgBoxSetMsg(" Please fill up all fields")
CheckIfEmpty = True
End If
Else
CheckIfEmpty = False
End If
End Function
答案 0 :(得分:0)
Me.Controls.OfType(Of TextBox)().Where(Function(t) t.Name <> "txtMiddileInitial" AndAlso t.Name <> "txtPhoneNum")
答案 1 :(得分:0)
根据Blackwood的评论,这里是检查listDatabases
属性的代码。如果它包含&#34; O&#34; (对于&#34;可选&#34;)然后不需要填写:
.Tag
答案 2 :(得分:0)
回答问题:
Private Function CheckIfEmpty(ParamArray exemptions As TextBox()) As Boolean
'Checks if All textboxes are empty
Dim empty = Me.Controls.OfType(Of TextBox)().Where(Function(txt) txt.Text.Trim.Length = 0 AndAlso Not exceptions.Contains(txt))
If empty.Any Then
MsgBoxSetMsg(" Please fill up all fields")
CheckIfEmpty = True
Else
CheckIfEmpty = False
End If
End Function
然后您可以这样称呼它:
Dim validated = CheckIfEmpty(txtMiddleInitial, txtPhoneNum)
答案 3 :(得分:0)
试试这个:
Private Function CheckIfEmpty(except As TextBox()) As Boolean
CheckIfEmpty = _
Me.Controls.OfType(Of TextBox)() _
.Where(Function(txt) Not except.Contains(txt)) _
.Where(Function(txt) txt.Text.Trim.Length = 0) _
.Any()
If CheckIfEmpty Then
MsgBoxSetMsg(" Please fill up all fields")
End If
End Function