我有一個模式窗體(登錄),我想要關閉它使用「X」按鈕,強制應用程序退出。 我嘗試這樣做:正在按下表格的X按鈕退出應用程序
private void Login_Deactivate(object sender, EventArgs e)
{
Application.Exit();
}
這導致我的應用程序退出上按下登錄按鈕(關閉)。但我只想在窗口的「X」按鈕上退出。 我該怎麼辦?
我有一個模式窗體(登錄),我想要關閉它使用「X」按鈕,強制應用程序退出。 我嘗試這樣做:正在按下表格的X按鈕退出應用程序
private void Login_Deactivate(object sender, EventArgs e)
{
Application.Exit();
}
這導致我的應用程序退出上按下登錄按鈕(關閉)。但我只想在窗口的「X」按鈕上退出。 我該怎麼辦?
擺脫Deactivate
事件,你不需要它。
這裏的問題是,你不能說只是「X」按鈕被按下。你真正要做的是跟蹤所有導致形式關閉的其他條件,並在而不是之一作出反應。
您應該利用DialogResult
枚舉,並允許調用應用程序作出反應,而不是試圖在登錄表單中完成所有操作。爲 「OK」,設置屬性
public Login()
{
DialogResult = DialogResult.None;
}
然後,在你的按鈕處理程序:DialogResult = DialogResult.OK
在你的登錄表單構造,該屬性設置爲None
。
如果您有特定的取消事件,您可以設置DialogResult = DialogResult.Cancel
。
最終,您可以在登錄表單中有一個FormClosing
事件,您可以在其中檢查該值並作出反應。但更重要的是,您的調用應用程序可以檢查登錄表單的結果,並在那裏做出反應。
我認爲你應該使用this.Parent.Application.Exit()
,它殺死了整個應用程序。
而不是停用事件,請訂閱「登錄」表單的「FormClosing
」事件。寫下你寫的相同的代碼。 只有在單擊外部登錄表單時需要關閉應用程序時,才能保留Deactivate
事件。
這沒有幫助。你仍然不知道它是如何結束的,這就是這個問題的關鍵。 – DonBoitnott
什麼是'Login_Deactivate'?這種方法在登錄表單或其他地方在哪裏?誰/什麼叫它? – DonBoitnott
@DonBoitnott它是停用我的登錄模式形式的事件 –
什麼觸發此事件觸發? – DonBoitnott