登录界面打开主界面:登录界面完成后,打开主界面,而登陆界面关闭
事件:winfrom窗体(此例中为frmLogin登录窗体,frm_Main主窗体)
frmLogin登录窗体的Hide()事件
frm_Main主窗体的ShowDialog()事件
frmLogin登录窗体的Close()事件
思路:
使用登录界面打开主界面界面,先隐藏登录界面,如果主页面对话框关闭,再关闭登录对话框。
private void CheckLogin(DataTable dt1)
{
if (dt1.Rows.Count >= 1)
{
strOperaterId = dt1.Rows[0]["OperatorId"].ToString();
strLoginUser = dt1.Rows[0]["Name"].ToString();
frmMain frm_main = new frmMain(); //声明一个主界面
this.Hide(); //登录界面隐藏
DialogResult DR = frm_main.ShowDialog(); //显示主界面
if (DR == DialogResult.Cancel) //关闭事件
{
this.Close(); 关闭登录界面
}
}
else
{
labError.Text = "用户不存在,请检查输入";
}
}
区分:
为什么不能直接先使用Dispose()方法或者Close()方法关闭登录界面,然后再打开主界面? 这是因为主窗体是在登录窗体事件中打开。系统默认主窗体是登录窗口的一个子窗体,然后Dispose()方法或者Close() 方法都会关闭登录界面。无法再打开主窗体。
如果使用Hide()方法隐藏登录窗体行不行? 隐藏窗体确实可以,但是关闭了主窗体后,登录窗体仍然存在(它只是隐藏了,登录窗体资源仍在),无法关闭。因此使用隐藏窗体可以,但是必须要在关闭主窗体后再执行关闭登录窗体的操作。