0
我有一个自定义控件,它在加载表单时获取焦点。它使用验证事件来处理它被留空或输入无效数据。表单关闭时取消自定义UserControl上的验证事件
我的问题是,当用户加载表单,然后关闭它,它将通过验证过程并显示错误,因为它是空的。
在BaseForm(:Form)上,我们覆盖了WndProc方法并在窗体上设置了一个标志,表示它正在关闭,现在在验证事件处理程序中,我可以获取父窗体并从方法中取消返回,如果表格正在关闭。
我想做的事情是在对象上执行这个检查,以便它影响所有现有的实例,并在表单关闭时取消验证事件。我只是无法取消活动。
这里是UserControl代码的shell。
public class SearchControl : UserControl
{
public SearchControl()
{
Validating += OnControlValitading;
}
public void OnControlValitading(object sender, CancelEventArgs e)
{
BaseForm frm = FindForm() as BaseForm;
if(frm != null && frm.IsClosing)
{
e.Cancel = true;
//TODO Cancel validation event on all objects
}
}
}