代码人生的小狗窝

一行行枯燥的代码,却描绘出人生的点点滴滴

您现在的位置是:首页>_C#

怎样阻止用户单击窗体的X关闭,而小弟我用代码this.Close()可以关闭

发布时间:2019-08-17浏览(1037)

    怎样阻止用户单击窗体的X关闭,而我用代码this.Close()可以关闭?
    怎样阻止用户单击窗体的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();
                    }

    ------解决方案--------------------
    直接不然让X显示
    使用空白窗体
    ------解决方案--------------------
    声明一个变量: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();
    }

    ------解决方案--------------------
    过虑消息。
    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);
    }