C# 验证所有字段是否具有值
本文关键字:是否 字段 验证 | 更新日期: 2023-09-27 18:36:02
我有一个 C# 窗体,要求用户填写 4 个文本框并选择 3 个组合框。我想看看是否有一种简单的方法来验证所有这些字段是否已填充。如果不是,则提供消息提示,说明缺少哪些字段。
我知道我可以使用下面的代码,但想看看是否还有其他东西
if (String.IsNullOrEmpty(TextBox.Text))
{
MessageBox.Show("Enter Text Here.", "Error", MessageBoxButtons.OK,
MessageBoxIcon.Warning);
}
您可以使用此处解释的 abatishchev 解决方案遍历所有文本框。
我正在背诵他:
定义扩展方法:
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) { ... }
如果您事先将其保存到变量中。