首页 新闻 会员 周边 捐助

一个关于windowsFrom页面关闭的问题(在线等)!!!

0
[已解决问题] 解决于 2008-09-13 23:54

我在做一个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
            {

      这里该写什么???
            }
        }

问题补充: 还存在一个问题就是我即使是选择“是”的时候要点两次才可以关闭该页面,一次关不了。 是不是因为我在这个MAIN窗体之前后个登录页面,我只是把登录页面给隐藏了,并没有关闭。因为我一关闭的时候就把整个程序给关掉了。 这也一直是纠缠我的问题 当登录页面顺利通过验证的时候代码如下: if (bo) { Main objMain = new Main(); objMain.Show(); this.Hide(); } bo是个Boolean型的值 this是当前登录页面 有什么办法把这个登录页面关闭而不影响后面的页面弹出? 要是把this.Hide();换成this.Cloes();的话就把整个程序关掉了!
握薪尝蛋的主页 握薪尝蛋 | 初学一级 | 园豆:145
提问于:2008-09-12 21:44
< >
分享
最佳答案
0

直接给代码示例吧,呵呵。

 

关闭窗体代码示例
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 的障眼法就行了。

Angel Lucifer | 小虾三级 |园豆:775 | 2008-09-13 01:11
其他回答(1)
0

e.cancel=true为关闭。

反之易然

秋色 | 园豆:47 (初学一级) | 2008-09-13 13:39
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册