首先,我会显示一个登录表单.当用户输入正确的ID和密码时,我想显示另一个表单,然后关闭登录表单.以下是我启动登录表单的方式.
static class Program
{
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new FrmLogin());
}
}
现在,当我想显示主窗体时,我调用FrmLogin类的dispose()方法,但应用程序立即结束.我的解决方案是将FrmLogin类的可见属性更改为false,我知道它不对,请建议一种方法来解决这个问题.
最佳答案 您可以将登录表单显示为对话框,如果登录成功,则可以运行主表单:
static class Program
{
public static bool isValid = false;
/// <summary>
/// The main entry point for the application.
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
using (FrmLogin login = new FrmLogin())
{
login.ShowDialog();
if (isValid)
{
Application.Run(new MainForm());
}
}
}
}
在你的FrmLogin中,验证用户并将DialogResult设置为Ok.在这里我按下了按钮点击事件.
private void btnLogin_Click(object sender, EventArgs e)
{
Program.isValid= true; // impliment this as method
if(Program.isValid)
{
this.DialogResult = DialogResult.OK;
// or this.Close();
}
else
{
//else part code
}
}