在winform程序开发时,当用户点击窗体上的“关闭”按钮时,希望实现退出整个应用程序的功能。
我一开始使用如下的代码实现,确认框总要出现两次:
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("您确认要退出吗?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
Application.Exit();
}
else
{
e.Cancel = true;
}
}
从网上搜了一下,主要有以下两种解决方法:
方法一:添加一句this.Dispose();
private void Form1_FormClosing(object sender, FormClosingEventArgs e)
{
if (MessageBox.Show("您确认要退出吗?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
this.Dispose();
Application.Exit();
}
else
{
e.Cancel = true;
}
}
方法二:不处理FormClosing事件,变为重写OnClosing方法
protected override void OnClosing(CancelEventArgs e)
{
if (MessageBox.Show("您确认要退出吗?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
Application.Exit();
}
else
{
e.Cancel = true;
}
base.OnClosing(e);
}
此外,窗体上的“退出”按钮,可以这样处理其Click事件:
private void button1_Click(object sender, EventArgs e)
{
if (MessageBox.Show("您确认要退出吗?", "", MessageBoxButtons.OKCancel) == DialogResult.OK)
{
this.Dispose();
Application.Exit();
}
}
- 本文标题: Winform关闭窗体的时候提示两次才关闭
- 文章分类:【WinForm/WPF】
- 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
- 上一篇:input和img 不对齐
- 下一篇: WinForm C#多线程的简单实例