在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