使用errorprovider验证多个文本框

use*_*253 6 c# winforms

我有10个文本框,现在我想检查单击按钮时它们都不是空的.我的代码是:

 if (TextBox1.Text == "")
 {
    errorProvider1.SetError(TextBox1, "Please fill the required field");
 }
Run Code Online (Sandbox Code Playgroud)

有什么方法可以一次检查所有文本框,而不是为每个人写作?

Ada*_*dam 22

就在这里.

首先,您需要以序列的形式获取所有文本框,例如:

var boxes = Controls.OfType<TextBox>(); 
Run Code Online (Sandbox Code Playgroud)

然后,您可以迭代它们,并相应地设置错误:

foreach (var box in boxes)
{
    if (string.IsNullOrWhiteSpace(box.Text))
    {
        errorProvider1.SetError(box, "Please fill the required field");
    }
}
Run Code Online (Sandbox Code Playgroud)

我建议使用string.IsNullOrWhiteSpace而不是x == ""或+ string.IsNullOrEmpty来标记填充了空格,制表符等的文本框,并显示错误.