當我打電話form.dispose()
窗體始終調用Validating事件並顯示MessageBox消息。 如何防止form.dispose()
執行時驗證事件不會觸發。驗證事件中有MessageBox.Show()
消息,因此當form.Dispose()
正在執行時,它們始終位於最前面。form.dispose()總是調用驗證事件並顯示彈出消息
這甚至有可能阻止退出?我使用的緊湊框架3.5
代碼:
public static void Close<T>(string formName) where T : Form
{
Form f = null;
if (Dict.TryGetValue(formName, out f))
{
Dict.Remove(formName);
f.Dispose();
}
}
和驗證事件
private void acPredmetObravnave_Validating(object sender, CancelEventArgs e)
{
if (....)
{
MessageBox.Show("Error");
}
}
可以顯示一些代碼?您應該嘗試在處理之前關閉表單並避免關閉此消息框。 –
是的,我想避免form.dispose() – senzacionale
上的此消息框您可以在調用f.Dispose()之前刪除事件處理程序的驗證事件。 – stuartmclark