VS2005 C# 点击窗口右上角的叉时调用事件

来源:百度知道 编辑:UC知道 时间:2024/05/25 12:48:24
就是点选“叉”关闭窗口前,还要运行一个事件。
用什么命令?
应该不是FormClosing
我的界面里面有“yes”“no”“cancel”的按钮。
在按下“yes”或“no”之后,要分别执行各自不同的外加的语句,然后关闭窗口。我希望点击右上角“叉”后,出现如同按下“no”后的情况,即先执行“no”的语句,然后关闭窗口。
如果使用Form_Closing的话,我写在“yes”“no”里面的语句就被忽略而不能执行了。这个问题怎么解决?

form的closing事件,在关闭之前触发,事件要传递一个CancelEventArgs 类,该类有一个属性close,把该属性设置为true,关闭操作将被取消.如下例子.

private void Form1_Closing(object sender, System.ComponentModel.CancelEventArgs e)
{
switch (MessageBox.Show("关闭窗口","关闭",MessageBoxButtons.YesNoCancel) )
{
case DialogResult.Yes:
break;
case DialogResult.No :
e.Cancel=true;
break;
case DialogResult.Cancel :
e.Cancel=true;
break;
}
}

在Form_FormClosing里写
no.PerformClick();//这个执行no按钮的事件.
e.Cancel = false;//这句就关了

要保证时间的运行,就要在 Form_Closing 里操作。

Form_Closing与Form_Closed,可以用MessageBox测试看看

form_closing内判断是否关闭,不关闭要更改关闭属性为false,不然还是会关的

Form_Closed

关注一下