想要在显示主窗体前先显示登陆窗口,于是在登陆窗体上设置"登陆","取消"两个Button,在VS中设置登陆按钮的DialogResult 是OK,取消按钮为Cancel.显示窗体时,用户点击登陆,如果用户的登陆信息是错误的,登陆窗体照样会关闭,这时候你不得不再次把登陆窗体给Show出来,这时候,你会发现要用一个while(true)的循环结构.
每次看到while(true)的结构就觉的不爽,而且这种实现方式窗体会闪烁,在网上找了一些资料,都很不全,结合一下,给出了我的实现方式:
首先,设置登陆按钮和取消按钮的DialogReuslt为none;
然后,为登陆按钮添加单击事件:
然后,改写Main函数:
这样一个完美的登陆模块就实现啦
每次看到while(true)的结构就觉的不爽,而且这种实现方式窗体会闪烁,在网上找了一些资料,都很不全,结合一下,给出了我的实现方式:
首先,设置登陆按钮和取消按钮的DialogReuslt为none;
然后,为登陆按钮添加单击事件:
private void button1_Click(object sender, System.EventArgs e)
{
if(user.Login())
{
this.DialogResult = DialogResult.OK;
this.Close();
}
}
{
if(user.Login())
{
this.DialogResult = DialogResult.OK;
this.Close();
}
}
然后,改写Main函数:
[STAThread]
static void Main()
{
LoginForm loginForm = new LoginForm();
loginForm.ShowDialog();
if( loginForm.DialogResult.Equals(DialogResult.OK))
{
Application.Run(new MainForm());
}
}
static void Main()
{
LoginForm loginForm = new LoginForm();
loginForm.ShowDialog();
if( loginForm.DialogResult.Equals(DialogResult.OK))
{
Application.Run(new MainForm());
}
}
这样一个完美的登陆模块就实现啦