我如何确保窗口中所有文本框的内容不为空?使用ForEach语句

时间:2013-03-18 06:24:10

标签: .net wpf vb.net foreach

我想验证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

此代码不起作用,我收到错误:“窗口是一种类型,不能用作表达式”

我该怎么做?

4 个答案:

答案 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