本来创建工程的时候 vs自动创建了MainFrm窗体 ,后来因为要登陆 加一个loginfrm窗体
问题:
1、loginfrm里我已经验证完用户名密码后,想关闭loginfrm 显示mainfrm 结果直接退出程序
MainFrm mainfrm = new MainFrm();
mainfrm.ShowDialog();
this.Close();//loginfrm.close();2、 后来我就直接把this.Close();改成this.hide(); 等我想关闭mainfrm 退出整个程序的时候 结果发现不行loginfrm还没有关闭,请问这问题怎么解决
问题:
1、loginfrm里我已经验证完用户名密码后,想关闭loginfrm 显示mainfrm 结果直接退出程序
MainFrm mainfrm = new MainFrm();
mainfrm.ShowDialog();
this.Close();//loginfrm.close();2、 后来我就直接把this.Close();改成this.hide(); 等我想关闭mainfrm 退出整个程序的时候 结果发现不行loginfrm还没有关闭,请问这问题怎么解决
Loginform frm = new Loginform();
frm.ShowDialog(this);
frm.dispose();//lo
{
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
FrmLogin newFrm = new FrmLogin(); if (newFrm.ShowDialog() == DialogResult.OK)
Application.Run(new FormMDI());
}
}
DialogResult.OK 为标志位,如果DialogResult.OK就可以登录
如果为DialogResult.Cancel 则无效这些都是在你的Login 里面写的判断
if (frm.ShowDialog() == DialogResult.OK) Application.Run(new Form1());
else Application.Exit();
在static void Main()里启动主窗体,
然后:
1. 先显示登陆窗体再显示主窗体
在Load事件写
FormLogin frm = new FormLogin();
frm.ShowDialog(this);
if (!frm.IsSuccess)
{
Application.ExitThread();
return;
} //记录登陆ID等
......
2. 显示了主窗体,再弹出登陆窗体,在Shown事件写,代码一样。