winform登录成功后打开主窗体的合理写法
在winform开发中,经常有登录成功后打开主窗体等类似的需求,如果象下面这样写:
//登录成功后
frmMain.Show();//打开主窗体
this.Hide(); //隐藏登录窗体
则登录窗体没有被销毁,仍占用着系统资源!
可以通过以下方法解决:
思路:在Main方法中打开主窗体,然后在主窗体的构造函数中打开登录窗体。
1: 登录窗体的设计
在“登录”按钮的Click事件处理程序中,判断登录成功后:
this.DialogResult = DialogResult.OK;
this.Close();
2: 主窗体的设计
(1) 准备一个打开登录窗体的方法
private bool UserLogin()
{
FrmLogin frmLogin = new FrmLogin();
try
{
DialogResult result = frmLogin.ShowDialog();
if (result == DialogResult.OK)
{
return true;
}
else
{
return false;
}
}
finally
{
frmLogin.Dispose();
}
}
(2) 修改构造函数:
public FrmMain()
{
if (!UserLogin())
{
//登录被取消退出系统,这一句很重要
System.Environment.Exit(0);
}
InitializeComponent();
}
注:原文: http://hi.baidu.com/mlstars/blog/item/b8c132d0f8a66c88a1ec9cf0.html 的第一种方法,那里还有另一种方法哟……