我想验证vb.net和wpf中的文本框,确保它在将内容提供给数据库之前不包含空值,我想使用for ... each语句但它不能在wpf中工作这是我的代码。
for Each txt as Control in window.controls
if typeof is Textbox Then
if txt.text = "" Then
MsgBox("Complete the blank Properties")
exit sub
end if
end if
next
此代码不起作用,我收到错误:“窗口是一种类型,不能用作表达式”
我该怎么做?
答案 0 :(得分:0)
if txt.text = "" Then
更改为
if txt.text is nothing Then
否则,如果您不想使用代码,可以尝试使用错误提供程序工具。 然后编写此代码
If (String.IsNullOrEmpty(textbox1.Text)) Or (String.IsNullOrEmpty(textbox2.Text)) Then
ErrorProvider1.SetError(textbox1, "This is a require field")
ErrorProvider1.SetError(textbox2, "This is a require field, fill in with 4 digits")
答案 1 :(得分:0)
您的窗口未命名为窗口。在foreach循环中放置窗口的变量名称而不是通用窗口。也许这是你的窗口类的一种方法?虽然这很不幸而且不是最好的设计,但您甚至可以省略名称并写下
for each txt as Control in yourwindowsvariablename.Controls
或
for each txt as Control in Controls
答案 2 :(得分:0)
如果代码与控件的格式相同(.net窗口),请使用Me.Controls
代替window.Controls
。如果没有,请检查window
实际上是否为变量。
答案 3 :(得分:0)
嘿伙计们我终于解决了问题,Thanx很多你的建议。
这只是一个函数,您调用它来遍历网格中的所有文本框并确保它们不为空,您调用该函数并将网格名称作为参数传递。
干杯!
public function AuthenticateTextBoxes(Byref G as Grid)
For i as int32 = 0 to (G.Children.count - 1)
if G.Children.Item(i).GetType = GetType(TextBox) Then
Dim txt as Textbox = CType(G.Children.Item(i),TextBox)
if string.IsnullOrWhitespace(txt.text) Then
MsgBox("Fill In the required fields")
End if
End if
Next