第一个问题就是在登录的时候验证正确的时候关闭登录窗体 显示主窗体
解决方法:
方法1: 在主窗体中先定义一个login窗体 再用 login 实例化一个窗体 并让该窗体以对话框的形式显示, 根据DialogResult的值来判断是否关闭该登录窗体 判断之后在运行主窗体
代码示例:
主窗体代码:
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
Application.Run(new Login());
Login log = new Login();
log.ShowDialog();
if (log.DialogResult == DialogResult.OK)
{
Application.Run(new Main());
}
}
login窗体的代码:
private void button1_Click(object sender, EventArgs e)
{
// 判断用户名和密码是否正确的代码
if (验证正确)
{
this.DialogResult = DialogResult.OK;
}
else
{
MessageBox.Show("输入的用户名或者密码错误!请重新输入!");
}
}
——————————————————————————
方法2:
首先程序load主frmMain,主frmMain就会new一个Login并弹出登陆窗口,在登陆窗口验证密码正确以后设置 DialogResult.OK这一句,再将对话框关闭。关闭以后from_load方法继续运行判断弹出的登陆框f2的DialogResult是否是 ok,如果是,则加载主表单,如果否,则关闭主表单。
在private void frmMain_Load(object sender, EventArgs e) 方法里添加以下代码
Form f2 =new Login();
f2.ShowDialog();
if (f2.DialogResult == DialogResult.OK)
{
MessageBox.Show("hello");
}
else
{
this.Close();
}
在private void btnLogin_Click(object sender, EventArgs e)里添加以下代码
if (Reader.HasRows)//判断是否有查询到对象的数据
{
this.DialogResult = DialogResult.OK;
this.Close();
}
主要原理就是利用的DialogResult = DialogResult.OK来实现的,
转载于:https://blog.51cto.com/marsng/1757794