特定文本框上每个循环的vb.net
我有一个ComponentOne输入面板“inputPanel”从数据库中提取记录 我想验证除名称文本框“txtNAME”之外的所有框 “检查”是一个测试无特殊字符的函数特定文本框上每个循环的vb.net,vb.net,for-loop,foreach,Vb.net,For Loop,Foreach,我有一个ComponentOne输入面板“inputPanel”从数据库中提取记录 我想验证除名称文本框“txtNAME”之外的所有框 “检查”是一个测试无特殊字符的函数 For Each ctrl As Control In inputPanel.Controls If ctrl.Name <> "txtNAME" Then check= ctrl.Text If NumText(check)
For Each ctrl As Control In inputPanel.Controls
If ctrl.Name <> "txtNAME" Then
check= ctrl.Text
If NumText(check) = False Then
MessageBox.Show("You can only Enter Numbers and Text for this field", "Invalid Input", MessageBoxButtons.OK, MessageBoxIcon.Error)
ctrl.Focus()
Exit Sub
End If
End If
Next
它仍在检查txtName的特殊字符
有什么帮助吗?将循环仅限于文本框,放弃同一控件集合中的标签或按钮等控件
For Each txtBox In inputPanel.Controls.OfType(Of TextBox)
If txtBox.Name <> "txtNAME" Then
check= txtBox.Text
If NumText(check) = False Then
.....
End If
End If
Next
您还可以使用
For Each txtBox In inputPanel.Controls _
.OfType(Of TextBox) _
.Where(Function(x) x.Name <> "txtNAME")
check= txtBox.Text
If NumText(check) = False Then
.....
End If
Next
在不放弃非文本框控件的情况下,您也会将panel control集合中的每个标签循环传递给NumText方法,触发错误消息的可能是标签文本,而不是txtNAME框-名称是否正确?您的比较是类型敏感的。名称是正确的,它忽略了名称的值,这样比较名称并不好。我建议如果ctrl不是txtNAME,那么改为ctrl。在这个面板中,您有其他类型的控件吗?例如标签是标签和文本框,它只是忽略了isNot太。它们都不起作用,非常奇怪的是c1面板。我只需要对他们使用ifs。无论如何谢谢你