如何使用errorProvider验证C#winforms中的列表框是否为空

如何使用errorProvider验证C#winforms中的列表框是否为空,c#,winforms,listbox,validating,C#,Winforms,Listbox,Validating,我有一个errorProvider控件。我想用它来验证listbox是否至少包含一个元素 以下是我注册验证事件的代码: this.selectedFieldsArea.Validating +=new CancelEventHandler(selectedFieldsArea_Validating); 下面是我的验证函数: private void selectedFieldsArea_Validating(object sender, CancelEventArgs e) { if

我有一个errorProvider控件。我想用它来验证listbox是否至少包含一个元素

以下是我注册验证事件的代码:

this.selectedFieldsArea.Validating +=new CancelEventHandler(selectedFieldsArea_Validating);
下面是我的验证函数:

private void selectedFieldsArea_Validating(object sender, CancelEventArgs e)
{
    if (this.selectedFieldsArea.Items.Count == 0)
    {
        errorProvider1.SetError(selectedFieldsArea, "Need to select at least 1 field");
        e.Cancel = true;
    }
    else
        errorProvider1.SetError(selectedFieldsArea, "");
}

虽然我注册了该方法,但它从未被调用。我忘记做什么了吗?

为了触发“验证”事件,必须调用Validate()或ValidateChildren()方法。我在我的button\u Click()事件中添加了这个,现在它可以工作了。

Oops,我刚刚发现我必须在表单上调用ValidateChildren()方法才能启动事件。还在学习。无论如何,谢谢发布示例代码会对其他人有所帮助