在表单构造函数中使用foreach循环进行用户输入验证

本文关键字:用户 输入 验证 循环 foreach 构造函数 表单 | 更新日期: 2023-09-27 18:09:32

我试图在文本框中使用这个自定义方法进行用户输入验证。但我觉得这种方法缺少了一些东西。现在使用不能移动到下一个文本框,如果验证失败。这样做是好事还是坏事?

private void textBox_Validating(object sender, CancelEventArgs e)
{
    TextBox currenttb = (TextBox)sender;
    if (currenttb.Text == "")
    {
        MessageBox.Show(string.Format("Empty field {0 }", currenttb.Name.Substring(3)));
        e.Cancel = true ;
    }
    else
    {
        e.Cancel = false;
    }
}

在表单构造函数中使用foreach循环将处理程序添加到文本框中:

foreach(TextBox tb in this.Controls.OfType<TextBox>().Where(x => x.CausesValidation == true))
{
    tb.Validating += textBox_Validating;
}

在表单构造函数中使用foreach循环进行用户输入验证

如果使用错误提供程序,如果验证失败,它将显示感叹号

我认为如果弹出太多的消息框会是一个糟糕的用户体验。也许您应该考虑在每个文本框旁边使用标签来显示错误信息。在您的程序中,如果文本框为空,我甚至不能通过单击关闭按钮关闭窗口。