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
}
}
}