日期:2014-05-19  浏览次数:20825 次

如何截取窗口的Close消息
我的代码如下
                private   void   Form1_Load(object   sender,   EventArgs   e)
                {
                        this.Closing   +=   new   CancelEventHandler(Form1_Closing);
                }
                private   void   Form1_Closing(object   sender,   CancelEventArgs   e)
                {
                        DialogResult   result;
                        result   =   MessageBox.Show( "退出? ", "提示 ",   MessageBoxButtons.YesNo,   MessageBoxIcon.Question);
                        if   (result   ==   DialogResult.Yes)
                                Application.Exit();  
                }

问题是,当我点X后,选择否的时候也一样退出了,请问如何截获Close消息,由我自己去操作是否退出,就象VC中   OnClose()   一样的操作,谢谢先

------解决方案--------------------
private void Form1_Closing(object sender, CancelEventArgs e)
{
DialogResult result;
result = MessageBox.Show( "退出? ", "提示 ", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result != DialogResult.Yes)
e.Cancel=true;//这里不能直接退出,而要通过参数e.Cancle来控制
}
------解决方案--------------------
二楼正解


if (result != DialogResult.Yes)
{
e.Cancel = true;
}
------解决方案--------------------
e.Cancel = true; 截取 当前事件操作的值,取消当前操作,也就是,当你不想关闭的时候,把它加上

e.Cancel = false; 这个就是正常操作了
------解决方案--------------------
private void Form1_Closing(object sender, CancelEventArgs e)
{
DialogResult result;
result = MessageBox.Show( "退出? ", "提示 ", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (result != DialogResult.Yes)
e.Cancel=true;//这里不能直接退出,而要通过参数e.Cancle来控制
}
正解