请问如何实现?  
另外多问一句,有些事件被激活之后一般都有什么方法把这个事件所执行的内容在事件的代码内判断结束?

解决方案 »

  1.   

    这个讲的是Form.FormClosing 事件
    从这里调用:
    命名空间:System.Windows.Forms
    程序集:System.Windows.Forms(在 system.windows.forms.dll 中)
    基本思路如下:
    在窗体关闭时,FormClosing 事件发生。窗体关闭时,此事件会得到处理,从而释放与此窗体关联的所有资源。如果取消此事件,则该窗体保持打开状态。若要取消窗体的关闭操作,请将传递给事件处理程序的 FormClosingEventArgs 的 Cancel 属性设置为 true。当窗体显示为模式对话框时,单击“关闭”按钮(窗体右上角带 X 的按钮)会隐藏窗体并将 DialogResult 属性设置为 DialogResult.Cancel。通过在窗体的 FormClosing 事件的事件处理程序中设置 DialogResult 属性,可以在用户单击“关闭”按钮时重写分配给 DialogResult 属性的值。在显示为无模式窗口的 Form 上调用 Close 方法时,不能调用 Show 方法使窗体可见,因为窗体的资源已被释放。若要隐藏窗体然后又使其可见,请使用 Hide 方法。
    不知楼主明白否?
      

  2.   

    我不明白,我在msdn上也看到这句话了,不知道怎么实现,麻烦帮忙写一下代码可以吗?
      

  3.   

    重写OnFormClosing事件处理程序,如下:        protected override void  OnFormClosing(FormClosingEventArgs e)
            {
                DialogResult result = MessageBox.Show("提示", "是否退出系统", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (result == DialogResult.Cancel)
                {
                    e.Cancel = true;
                    return;
                }
              base.OnFormClosing(e);
            }
      

  4.   

    在FormClosing()事件里面判断,否的话,e.Cancel = true;
      

  5.   

    这参数写反了MessageBox.Show("提示", "是否退出系统", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);应该是MessageBox.Show("是否退出系统", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
    当你点击右上角关闭按钮时就会执行该处理函数
      

  6.   


            private void LogonForm_FormClosed(object sender, FormClosedEventArgs e)
            {
                DialogResult result = MessageBox.Show("您确定要退出吗", "提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question);
                if (result == DialogResult.OK)
                {            }
                else
                {
                    
                }
            }上面的是我的C#事件的代码,刚才您说的那个东西放在Form的代码里面吗? 我上面的代码怎么填?
    不好意思,我不太明白这个调用的过程..能给我讲一下这个调用的过程吗??现在不能加,我明天给加分..
      

  7.   

    可以这么说吧。因为Close是发生在Closing之后,应该在Close之前控制,也就是Closing了