[已解决问题] 一个关于windowsFrom页面关闭的问题(在线等)!!!
提问时间: 2008-09-12 21:44
浏览:205 次

我在做一个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();的话就把整个程序关掉了!

最佳答案

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

 

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

2008/9/13 1:11:16 回答者:Angel Lucifer


提问者对于答案的评价:谢谢赐教!!!
其它回答(1)

e.cancel=true为关闭。

反之易然


2个月前   回答者:秋色 - 初学一级
评论
   您需要登录以后才能回答!
 

我要提问

我的问题


快到期问题



> 问题排行榜

相关内容

相关链接