在C#/ .net/Visual Studio 2010中的窗體項目中,如果有人點擊關閉窗口按鈕,我想在程序中禁用其他一些內容。有沒有一種方法可以打「X」,我可以擴展?有沒有辦法讓窗口關閉按鈕(X)在實際關閉窗口之前調用方法?
回答
您應該使用的兩個事件是FormClosing
和FormClosed
。
在.Net Framework verion 2.0中,這些事件取代了過時的Closing
和Closed
事件。
新事件發生的原因是當Application.Exit
方法被調用時,舊事件並未發生。
的FormClosing
事件的用法下面是一個例子:
public Form1()
{
InitializeComponent();
this.FormClosing += Form1_FormClosing;
}
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult result = MessageBox.Show("Really close this form?", string.Empty, MessageBoxButtons.YesNo);
if (result == DialogResult.No)
{
e.Cancel = true;
}
}
該代碼簡單地詢問用戶是否要關閉表單,如果選擇否,它然後取消該事件。您可以在事件處理程序中放入您需要的任何邏輯。
上Form.Closing
MSDN文章是here,包括爲什麼該事件是過時的引用。 Form.FormClosing
的參考是here
只需在FormClosed事件中註冊處理程序。
窗體已關閉後,是不是「FormClosed」事件太晚?你需要「FormClosing」來代替,我相信 – 2010-08-01 07:45:50
沒有什麼問題表明'FormClosing'會比FormClosed更需要。但我確實承認我的答案是不完整的,因爲沒有提到第二個事件,就像其他答案一樣。 – jdmichal 2010-08-01 15:24:09
- 1. 用窗口'X'按鈕關閉窗體
- 2. WPF窗口沒有關閉
- 3. jQuery沒有關閉窗口
- 4. JFrame沒有關閉窗口?
- 5. 如何防止父窗口關閉之前關閉子窗口
- 6. HTML按鈕關閉窗口
- 7. 有沒有辦法使用python關閉python窗口?
- 8. 無關閉窗口的關閉窗口
- 9. 有沒有辦法檢測瀏覽器窗口是否關閉?
- 10. 在所有者窗口關閉WebView之前調用什麼方法?
- 11. 關閉窗口按鈕gtk_widget_set_sensitive按鈕
- 12. 在窗口內用自定義關閉按鈕關閉kendoui窗口
- 13. 父窗口關閉時關閉所有子窗口
- 14. 無法關閉窗口
- 15. 無法關閉窗口
- 16. 在關閉一個窗口之後關閉WPF中的所有窗口
- 17. 關閉窗口
- 18. 無法關閉當前窗口
- 19. 關閉窗口鈕 - JavaScript的
- 20. Response.End()之後關閉窗口?
- 21. 關閉實際窗口並從ViewModel打開一個新窗口
- 22. 關閉實際彈出窗口內的Bootstrap彈出窗口?
- 23. 方法保持窗口關閉
- 24. 如何關閉彈出窗口,當沒有XPath關閉按鈕時?
- 25. 從另一窗口窗體關閉事件調用方法。 c#
- 26. 沒有window.open()的關閉窗口;
- 27. 子WebBrowser窗口上的「關閉」按鈕關閉父窗口(.NET,winforms)
- 28. bootstrap 3模式窗口關閉按鈕將不會關閉模式窗口
- 29. 如何在Safari關閉之前捕捉窗口關閉?
- 30. 關閉窗口之前顯示提示
酷!我很確定有這樣簡單的事情。 謝謝! – SDGator 2010-08-01 20:37:48