点击按钮时运行表单上的所有验证事件

3

我有一个小型表单,其中包含一些文本框和组合框,每个都有自己的验证事件,如果用户在不输入任何内容的情况下移动到下一个框时,该事件会填充默认值1或0,但当用户直接单击提交按钮时,我也想运行所有验证。

private void Validating_Zero(object sender, CancelEventArgs e)
{
    if (((TextBox_Pro)sender).Text == "")
    {
        ((TextBox_Pro)sender).Text = "0";
    }
}

private void Validating_One(object sender, CancelEventArgs e)
{
    if (((TextBox_Pro)sender).Text == "")
    {
        ((TextBox_Pro)sender).Text = "1";
    }
}

private void Start_Validating(object sender, CancelEventArgs e)
{

}

Validating_... 处理程序连接到哪个事件?是 LostFocus 吗? - Mong Zhu
它们被挂钩到文本框的验证事件上,因此当用户即将离开文本框并移动到下一个文本框时,它们会触发。 - DeadlyTitan
1个回答

6
调用表单的ValidateChildren()方法会导致表单的所有子控件验证其数据。
您还可以使用该方法的另一个重载,它接受一个验证约束,ValidateChildren(ValidationConstraints),以将验证限制为仅在立即子控件、启用的控件、选项卡停靠控件、可选择的控件、可见控件或所有控件中进行。
要查看使用Validating事件和Error提供程序控件进行验证并显示错误摘要的示例,并了解有关Windows窗体中的验证选项的更多信息,请参考以下文章:

1
很棒的回答,谢谢,我学到了新东西。由于它变得多余,我将删除我的回答。 :) - Mong Zhu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接