怎样阻止用户单击窗体的X关闭,而我用代码this.Close()可以关闭?我用以下代码发现了这个问题。
        private void Form2_FormClosing(object sender, FormClosingEventArgs e)
        {
            if (e.CloseReason == CloseReason.UserClosing)
            {
                e.Cancel = true;
                MessageBox.Show("请使用关闭按钮退出");
            }
        }        private void button1_Click(object sender, EventArgs e)
        {
            this.Close();
        }

解决方案 »

  1.   

    声明一个变量:boolean UserClose=false;
            private void Form2_FormClosing(object sender, FormClosingEventArgs e)
            {
                if (!UserClose)
                {
                    e.Cancel = true;
                    MessageBox.Show("请使用关闭按钮退出");
                }
            }        private void button1_Click(object sender, EventArgs e)
            {
                UserClose=true;
                this.Close();
            }
      

  2.   

    关注中...如果是web程序怎么办?
      

  3.   

    我知道了!ControlBox=false直接不显示X。
    也感谢楼上的热情回答。
      

  4.   

    Web窗体...你可以限制他浏览器吗?...
      

  5.   

    我想知道怎么用window.open打开一个没有关闭X的IE窗口。(除了全屏)
      

  6.   

    过虑消息。
    private const int SC_CLOSE = 61536;
    protected override void WndProc(ref Message m)
        {
          if (m.WParam.ToInt32() == SC_CLOSE)
         {
            //用户单击窗体的X关闭时
         }
          else
            base.WndProc(ref m);
        }
      

  7.   

    private void frmMain_Closing(object sender, System.ComponentModel.CancelEventArgs e)
    {
    if(MessageBox.Show("是否要关闭整个系统?","提示",System.Windows.Forms.MessageBoxButtons.YesNo)==DialogResult.Yes)
    Application.Exit();
    else
    e.Cancel=true;
    }