C#关于关闭窗体事件!

2024-12-29 09:44:37
推荐回答(4个)
回答1:

你是不是要在用户点击关闭时 提示用户是否关闭程序??

这样的话 没必要再加一个Form2啦

直接为Form1添加一个Form1_FormClosing事件在事件中写入以下代码
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (DialogResult.OK == MessageBox.Show("你确定要关闭应用程序吗?", "关闭提示", MessageBoxButtons.OKCancel, MessageBoxIcon.Question))
{
this.FormClosing -= new FormClosingEventHandler(this.Form1_FormClosing);//为保证Application.Exit();时不再弹出提示,所以将FormClosing事件取消
Application.Exit();//退出整个应用程序
}
else
{
e.Cancel = true; //取消关闭事件
}
}

如果你确定想这样做 也可以 在Form1代码:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
e.Cancel = true;//取消关闭事件
Form2 f2 = new Form2();
if (DialogResult.OK == f2.ShowDialog())//让Form2以模式窗口显示,就是说Form2显示时 Form1无法成为焦点
{
this.FormClosing -= new FormClosingEventHandler(this.Form1_FormClosing);//为保证Application.Exit();时不再弹出提示,所以将FormClosing事件取消
Application.Exit();
}
}

Form2中两个按钮事件代码:
private void btnOK_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.OK;
}

private void btnCancel_Click(object sender, EventArgs e)
{
DialogResult = DialogResult.Cancel;
}

回答2:

你是想再点击关闭的时候弹出一个确认对话框吧?
你可以定义一个Form1的Closing事件,在事件里弹出确认对话框,根据结果判断是否关闭Form1,Closing事件的传入参数e有一个属性,设置为true就可以取消关闭。

回答3:

这是基础好不好,这种问题书上一大堆,或者是网上一搜一大堆,有问题一搜就出来的。这种问题还要问啊...

回答4:

无语。你Form2弹出的时候Form1还在吗?