怎样阻止用户单击窗体的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);
}