问题描述
如题所述,把退出程序了,怎么把登陆界面显示出来??谢谢各位大神了
解决方案
解决方案二:
不好意思。。。上述说的有点问题:应该是退出程序了,怎么显示登陆界面?
解决方案三:
]你这个是不是像QQ的那种切换用户呀,退出当前用户然后显示登录窗,这样即可privatevoidmnuReLogin_Click(objectsender,EventArgse){if(Utility.ShowQuestionMessage("是否切换用户?")==System.Windows.Forms.DialogResult.Yes){StartExe(Application.ExecutablePath);Application.ExitThread();}}privatestaticvoidStartExe(stringappName){stringpath=appName;Processps=newProcess();ps.StartInfo.FileName=path;ps.StartInfo.Arguments="T";ps.StartInfo.CreateNoWindow=true;ps.StartInfo.WorkingDirectory=Path.GetDirectoryName(path);ps.Start();}
解决方案四:
那就不要退出程序,只关闭窗体不就好了你是怎么让程序启动显示登陆页面,登陆成功后关闭登陆页面,显示窗体的那么不就是把这个过程反过来如果你是用Application.Run(主窗体),登陆窗体关闭,那么你也直接关闭主窗体,从新用一个进程打开登陆窗体如果你是将登陆窗体隐藏了,然后显示主窗体,那么你关闭主窗体,让登陆窗体重新显示,不就得了
解决方案五:
或者你不要用Applicatcion.Exit()而用Applicatcion.Restart();
解决方案六:
我估计撸主描述的是一个winform的程序实现注销的功能:关闭主窗体,显示登录界面。
解决方案七:
有一种牛b的方法IsLogin:IsLogin=false;if(newFrmLogin().ShowDialog()==DialogResult.OK){//登录成功,运行主程序Application.Run(newFrmMDIMain());}else{Application.Exit();}//当关闭主程序的时候会执行这个代码,在关闭主程序的时候需要给IsLogin设置成true,那么就goto到IsLogin,然后又重新回到登录窗口.if(IsLogin){gotoIsLogin;}
解决方案八:
"IsLogin:"是goto点,IsLogin是个全局变量,名字别混淆了.
解决方案九:
引用6楼xtdhb的回复:
有一种牛b的方法IsLogin:IsLogin=false;if(newFrmLogin().ShowDialog()==DialogResult.OK){//登录成功,运行主程序Application.Run(newFrmMDIMain());}else{Application.Exit();}//当关闭主程序的时候会执行这个代码,在关闭主程序的时候需要给IsLogin设置成true,那么就goto到IsLogin,然后又重新回到登录窗口.if(IsLogin){gotoIsLogin;}
这方法牛B.简洁
解决方案十:
privatevoid注销ToolStripMenuItem_Click(objectsender,EventArgse){Form2fm2=newForm2();Program.context.MainForm=fm2;fm2.Show();this.Close();}
program.csinternalstaticApplicationContextcontext=newApplicationContext(newForm1());///<summary>///应用程序的主入口点。///</summary>[STAThread]staticvoidMain(){Application.EnableVisualStyles();//Application.SetCompatibleTextRenderingDefault(false);Application.Run(context);}
解决方案十一:
引用2楼wyd1520的回复:
]你这个是不是像QQ的那种切换用户呀,退出当前用户然后显示登录窗,这样即可privatevoidmnuReLogin_Click(objectsender,EventArgse){if(Utility.ShowQuestionMessage("是否切换用户?")==System.Windows.Forms.DialogResult.Yes){StartExe(Application.ExecutablePath);Application.ExitThread();}}privatestaticvoidStartExe(stringappName){stringpath=appName;Processps=newProcess();ps.StartInfo.FileName=path;ps.StartInfo.Arguments="T";ps.StartInfo.CreateNoWindow=true;ps.StartInfo.WorkingDirectory=Path.GetDirectoryName(path);ps.Start();}
好像报错了,Utility显示不存在,是不是要添加引用?怎么添加呢?求大神指教
解决方案十二:
引用2楼wyd1520的回复:
]你这个是不是像QQ的那种切换用户呀,退出当前用户然后显示登录窗,这样即可privatevoidmnuReLogin_Click(objectsender,EventArgse){if(Utility.ShowQuestionMessage("是否切换用户?")==System.Windows.Forms.DialogResult.Yes){StartExe(Application.ExecutablePath);Application.ExitThread();}}privatestaticvoidStartExe(stringappName){stringpath=appName;Processps=newProcess();ps.StartInfo.FileName=path;ps.StartInfo.Arguments="T";ps.StartInfo.CreateNoWindow=true;ps.StartInfo.WorkingDirectory=Path.GetDirectoryName(path);ps.Start();}
这个对我的程序管用,虽然不知道StartExe方法里面的代码什么意思,谢谢您,如果不介意,您能说说这是什么意思吗
解决方案十三:
引用11楼u013272781的回复:
Quote: 引用2楼wyd1520的回复:
]你这个是不是像QQ的那种切换用户呀,退出当前用户然后显示登录窗,这样即可privatevoidmnuReLogin_Click(objectsender,EventArgse){if(Utility.ShowQuestionMessage("是否切换用户?")==System.Windows.Forms.DialogResult.Yes){StartExe(Application.ExecutablePath);Application.ExitThread();}}privatestaticvoidStartExe(stringappName){stringpath=appName;Processps=newProcess();ps.StartInfo.FileName=path;ps.StartInfo.Arguments="T";ps.StartInfo.CreateNoWindow=true;ps.StartInfo.WorkingDirectory=Path.GetDirectoryName(path);ps.Start();}这个对我的程序管用,虽然不知道StartExe方法里面的代码什么意思,谢谢您,如果不介意,您能说说这是什么意思吗
Utility.ShowQuestionMessage("是否切换用户?")这个只是一个MessageBox.Show的封装,你可以去掉或改用MessageBoxStartExe这个就是转一个路径启动exe,,,StartExe(Application.ExecutablePath);Application.ExitThread();你可以理解先启动一个exe然后关掉当前进程
解决方案十四:
引用6楼xtdhb的回复:
有一种牛b的方法IsLogin:IsLogin=false;if(newFrmLogin().ShowDialog()==DialogResult.OK){//登录成功,运行主程序Application.Run(newFrmMDIMain());}else{Application.Exit();}//当关闭主程序的时候会执行这个代码,在关闭主程序的时候需要给IsLogin设置成true,那么就goto到IsLogin,然后又重新回到登录窗口.if(IsLogin){gotoIsLogin;}
能不能改成while啊,看到goto就想吐槽。。。。能不用goto还是不要goto了。
解决方案十五:
感觉上面说的都很奇怪啊。你的登陆窗体(Login)肯定是主窗体啊,你只要登陆的时候把Login.Hide()了,系统主窗体Show()出来,不需要的时候再Close()掉,同时把Login.Show()出来就可以实现你说的效果。
解决方案:
//关闭窗体的时候要是你的登陆界面是你程序的启动界面Application.Restart();
解决方案:
我就是用的Applicatcion.Restart();
解决方案:
引用12楼wyd1520的回复:
Quote: 引用11楼u013272781的回复:
Quote: 引用2楼wyd1520的回复:
]你这个是不是像QQ的那种切换用户呀,退出当前用户然后显示登录窗,这样即可privatevoidmnuReLogin_Click(objectsender,EventArgse){if(Utility.ShowQuestionMessage("是否切换用户?")==System.Windows.Forms.DialogResult.Yes){StartExe(Application.ExecutablePath);Application.ExitThread();}}privatestaticvoidStartExe(stringappName){stringpath=appName;Processps=newProcess();ps.StartInfo.FileName=path;ps.StartInfo.Arguments="T";ps.StartInfo.CreateNoWindow=true;ps.StartInfo.WorkingDirectory=Path.GetDirectoryName(path);ps.Start();}这个对我的程序管用,虽然不知道StartExe方法里面的代码什么意思,谢谢您,如果不介意,您能说说这是什么意思吗
Utility.ShowQuestionMessage("是否切换用户?")这个只是一个MessageBox.Show的封装,你可以去掉或改用MessageBoxStartExe这个就是转一个路径启动exe,,,StartExe(Application.ExecutablePath);Application.ExitThread();你可以理解先启动一个exe然后关掉当前进程
vs2010MessageBoxStartExe有这个吗?VS2010里只有Message、MessageBox、MessageBoxButtons、MessageBoxDefaultButton、MessageBoxIcon、MessageBoxOptions这六种啊