C#验证所有字段都有值

时间:2013-10-20 08:20:39

标签: c# validation isnullorempty

我有一个C#表单,要求用户填写4个文本框并选择3个组合框。我想看看是否有一种简单的方法来验证所有这些字段都已填满。如果没有,则提供一条消息提示,说明缺少哪些字段。

我知道我可以使用下面的代码,但想知道是否还有其他内容

if (String.IsNullOrEmpty(TextBox.Text))
{
      MessageBox.Show("Enter Text Here.", "Error", MessageBoxButtons.OK, 
                                                 MessageBoxIcon.Warning);

}

1 个答案:

答案 0 :(得分:1)

您可以使用解释abatishchevhere解决方案迭代所有TextBox。

我正在背诵他:

定义扩展方法:

public static IEnumerable<TControl> GetChildControls(this Control control) where TControl : Control
{
    var children = (control.Controls != null) ? control.Controls.OfType<TControl>() : Enumerable.Empty<TControl>();
    return children.SelectMany(c => GetChildControls(c)).Concat(children);
}

然后像这样使用它:

var allTextBoxes = this.GetChildControls<TextBox>();

最后循环遍历:

foreach (TextBox tb in this.GetChildControls<TextBox>())
{
    if(String.IsNullOrEmpty(tb.Text)
    {
        // add textbox name/Id to array
    }
}

您可以将所有TextBox ID添加到集合中,并在最后使用此集合向用户显示需要填充的Textboex。

修改

foreach循环有点误导

你可以像这样使用它:

foreach (TextBox tb in this.GetChildControls<TextBox>()) { ... }

foreach (TextBox tb in allTextBoxes) { ... } 

如果您事先将其保存到变量中。