检查winforms字段是否为空

时间:2013-06-28 13:08:51

标签: .net winforms

我想知道如果任何txt输入字段为空,是否可以获取信息?

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

由于

2 个答案:

答案 0 :(得分: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;
}

顺便说一句,在文本框中放置一些validation,然后手动检查它们。

答案 1 :(得分:1)

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