2013-06-28 223 views
0

我想知道是否有可能获得任何txt输入字段为空的信息?检查winforms字段是否为空

目前我有10个输入txt字段,我想知道如果我有例如50个输入可以做到这一点,当然必须有比检查每个字段更好的方法。

感谢

+1

VB?或C#? ..你的意思是文本框? – matzone

+0

c#,textbox .... – user1765862

+4

[This cartoon](http://noisydecentgraphics.typepad.com/.shared/image.html?/photos/uncategorized/2008/03/11/yourproduct.jpg)很经典。 –

回答

3

您可以使用LINQ

bool hasEmptyTextBox = Controls.OfType<TextBox>().Any(tb => tb.Text.Length == 0); 

如果你也想确保,如果没有空格,那么你可以使用tring.IsNullOrWhiteSpace方法:

bool hasEmptyTextBox = Controls.OfType<TextBox>() 
           .Any(tb => String.IsNullOrWhiteSpace(tb.Text)); 

正如@okrumnow正确指出的那样,这将仅检查TextBoxes,它们是表单或用户控件的直接子对象醇。如果您需要检查各个层面的文本框,那么你应该这样做递归:

public bool HasEmptyTextBox(Control control) 
{ 
    if (Controls.OfType<TextBox>().Any(tb => tb.Text.Length == 0)) 
     return true; 

    foreach(var child in Controls) 
     if (HasEmptyTextBox(child)) 
      return true; 

    return false; 
} 

BTW这是beeter把你的文本框部分validation,然后手动检查他们所有。

+0

如果它们都放在同一个容器内。 – okrumnow

+0

@okrumnow是的,很好的通知 –

1
FormName.Controls.OfType<TextBox>().Where(c => c.Text.Trim() == "")