首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

C# [重新登陆功能]与[X关闭]功能冲突,欲知详情,请点击小弟我

2013-11-06 
C# [重新登陆功能]与[X关闭]功能冲突,欲知详情,请点击我 请教各位一个问题,描述如下:现有一winform主窗体,

C# [重新登陆功能]与[X关闭]功能冲突,欲知详情,请点击我
 请教各位一个问题,描述如下:

现有一winform主窗体,发现点击右上角的[X]关闭按钮之后,只是关闭了窗体界面,而没有真正得退出程序进程。于是,我在form_closing事件里面加入如下代码:


  private void MainFormAdmin_FormClosing(object sender, FormClosingEventArgs e)
        {

            if (e.CloseReason != CloseReason.ApplicationExitCall)
            {
                DialogResult re = MessageBox.Show("确定要退出系统?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                if (re == DialogResult.Yes)
                {
                    e.Cancel = false;
                    Application.Exit();
                }
                else
                {
                    e.Cancel = true;
                }
            } 
        }

在form_closing事件里加入代码后,问题已解决,点击X关闭可以正常退出程序。

可是,form_closing事件与下面一段主窗体[重新登陆]功能代码冲突了:


        private void 重新注册ToolStripMenuItem_Click(object sender, EventArgs e)
        {
            DialogResult MsgBoxResult;
            MsgBoxResult = MessageBox.Show("确定要重新注册系统?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Exclamation, MessageBoxDefaultButton.Button2);
            if (MsgBoxResult == DialogResult.Yes)
            {
                this.Close();
                Login lg = new Login();
                lg.Show();
            }
        }


在执行重新注册点击事件的“this.Close()”时,会执行form_closing,导致注册时也提示是否要退出系统,请教,应该如何设计可以让注册事件在正常工作的前提下,点击右上角的[X]关闭按钮也可以完全退出程序进程。谢谢。
[解决办法]
加一个全局变量,表明是不是重新注册,是重新注册的话就不走
if (e.CloseReason != CloseReason.ApplicationExitCall)
            {
                DialogResult re = MessageBox.Show("确定要退出系统?", "提示", MessageBoxButtons.YesNo, MessageBoxIcon.Information);
                if (re == DialogResult.Yes)
                {
                    e.Cancel = false;
                    Application.Exit();
                }
                else
                {
                    e.Cancel = true;
                }
            } 
这个语句。
[解决办法]
本帖最后由 bdmh 于 2013-11-05 10:49:51 编辑 this.Hide();
或者根本没必要关闭窗体,显示在那又如何
[解决办法]
也可以试试e.CloseReason != CloseReason.UserClosing)


[解决办法]
现有一winform主窗体,发现点击右上角的[X]关闭按钮之后,只是关闭了窗体界面,而没有真正得退出程序进程
//应该找到点击关闭按钮为什么没有退出进程,关闭主窗体正常来说应该是进程退出的,如果没有退出应该找出进程没有退出的原因,可能是其它的资源没有关闭,而不是直接 Application.Exit(); 看看Program中的Main()方法,也就是你程序的主入口,或者调出你主窗体的代码。
[解决办法]
给你个 思路  你 点击 重写登陆 时 把 主窗体隐藏
this.visible = false;
Login log = new Login()
if (log.ShowDialog() == dialog.ok)
{
//你需要执行相关 的方法
//显示窗体
this.visible = true;
}

热点排行