在C#/。net / Visual Studio 2010的Windows窗体项目中,如果有人点击关闭窗口按钮,我想在程序中禁用其他一些内容。是否有方法调用我可以扩展的“X”?
答案 0 :(得分:10)
您应该使用的两个事件是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
答案 1 :(得分:3)
答案 2 :(得分:0)
只需在FormClosed事件上注册处理程序。