怎样阻止用户单击窗体的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();
}
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();
}
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);
}
{
if(MessageBox.Show("是否要关闭整个系统?","提示",System.Windows.Forms.MessageBoxButtons.YesNo)==DialogResult.Yes)
Application.Exit();
else
e.Cancel=true;
}