我想通过此函数传递txt1和txt2以验证两个用户输入框但是我一次只能传递一个参数,这意味着必须生成2个函数?是否有一种方法可以在输入txt1的所有位置的txt1之后自动传递txt2。
Private Function isNumericOnly(ByVal txt1 As String, ByVal txt2 As String) As Boolean
Dim iLen As Integer
Dim iCtr As Integer
Dim sChar As String
iLen = Len(txt1)
If iLen > 0 Then
For iCtr = 1 To iLen
sChar = Mid(txt1, iCtr, 1)
If Not sChar Like "[0-9]" Then Return False
Next
Return True
End If
End Function
答案 0 :(得分:3)
您可以使用一种验证方法:
Public Function DigitsOnly(text As String) As Boolean
Return text IsNot Nothing AndAlso text.All(AddressOf Char.IsDigit)
End Function
然后将TextBoxes
的文本传递给它:
Dim isValid As Boolean = DigitsOnly(txt1.Text) AndAlso DigitsOnly(txt2.Text)
请注意,如果传递空字符串,则该方法返回True
。如果您不想使用:
Return Not String.IsNullOrEmpty(text) AndAlso text.All(AddressOf Char.IsDigit)
如果您要验证许多控件(或字符串),则可以使用集合:
Dim allTextBoxes As TextBox() = {txt1, txt2, txt3}
Dim isValid = allTextBoxes.All(Function(txt) DigitsOnly(txt.Text))