我在做一个From窗体,在窗体的关闭事件Main_FormClosing时给出了一个弹出对话框的提示,选择是的时候关闭该程序,选择否的时候如何不关闭该页面?代码如下:
也就是说我不知道else里面该怎么写才能让页面还停留住,因为我点否的时候页面还是关闭了。
在线等答复,谢谢
//窗体关闭事件
private void Main_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dr = MessageBox.Show("你确定你是真的想退出不干了吗?嗯?", "世上没卖后悔药的喔", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr == DialogResult.Yes)
{
Application.Exit();
}
else
{
这里该写什么???
}
}
直接给代码示例吧,呵呵。
关闭窗体代码示例
private void MyForm_FormClosing(object sender, FormClosingEventArgs e)
{
DialogResult dr = MessageBox.Show("你确定你是真的想退出不干了吗?嗯?", "世上没卖后悔药的喔", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
if (dr == DialogResult.Yes)
{
this.Dispose();
}
else
{
e.Cancel = true;
}
}
1.在点了 Yes 后,如果调用 Application.Exit 会再次引发 FormClosing 事件,所以会出现两次询问对话框,这是 .NET 2.0 修改的行为,如果是 .NET 1.x ,调用此方法没有问题。Close 方法同样如此,所以在这里应该调用 Dispose 方法来释放资源。
2.点击 No 后,直接把事件处理程序的 CancelEventArgs 的 Cancel 属性设置为 true 即可。
至于问题补充,无非就是个障眼法。你的方法是把登陆窗体作为主窗体了,所以关闭登陆界面后,整个程序就关掉了。可以把你的 Main 作为主窗体,然后 new 一个登陆窗体,然后再使些 Show/Hide 的障眼法就行了。
e.cancel=true为关闭。
反之易然