winform关闭登录窗体打开主窗体的方法

方法1、
使用Close关闭登录窗体,使用Application.Run()方法打开主窗体。
(1)Program.cs中代码:
 
FormLogin fl = new FormLogin();
fl.ShowDialog();
if (fl.DialogResult == DialogResult.OK)
{
Application.Run(new FormMain());
}
else
{
return;
}
 
即先将登录窗口作为一个对话框打开,如果这个对话框返回一个DialogResult.OK的值,那么就表示登录验证成功了,于是打开主窗体。如果验证失败,则程序结束、退出。
 
(2)在登录窗体(FormLoin)中代码:
 
private void button1_Click(object sender, EventArgs e)
{
if (textBox1.Text == "aaa") { //验证用户名密码成功
this.DialogResult = DialogResult.OK; //返回一个登录成功的对话框状态
this.Close(); //关闭登录窗口
}
}
 
(3)优劣
优:1、将登录窗体关闭,只打开主窗体。
劣:1、如果需要切换用户,还需要重新运行窗体,无法使用FormLogin.Show();方法。
 
方法2、
使用Hide()方法隐藏登录窗体,使用实例化的方法打开主窗体。
(1)优劣
优:1、如果需要切换用户,还需要重新运行窗体,可以使用FormLogin.Show();方法。
劣:1、未将登录窗体关闭,同时打开主窗体。
 
 
3、目前综合的方法。
(1)Program.cs中代码:
//声明一个线程
private static System.Threading.Mutex mutex;
/// <summary>
/// 应用程序的主入口点。
/// </summary>
[STAThread]
static void Main()
{
Application.EnableVisualStyles();
Application.SetCompatibleTextRenderingDefault(false);
//开启线程
mutex = new System.Threading.Mutex(true, "OnlyRun");
if (mutex.WaitOne(0, false))
{
FormLogin fl = new FormLogin();
fl.ShowDialog();
if (fl.DialogResult == DialogResult.OK)
{
Application.Run(new FormMain());
}
else
{
return;
}
}
else
{
MessageBox.Show("程序已经在运行!", "提示", MessageBoxButtons.OK, MessageBoxIcon.Information);
Application.Exit();
}
}
(2)在登录窗体(FormLoin)中代码:
if (textBox1.Text == "123")
{ //验证用户名密码成功
this.DialogResult = DialogResult.OK; //返回一个登录成功的对话框状态
this.Close(); //关闭登录窗口
}
 
(3)优劣
优:1、可以防止重复运行该程序。
改进:1、根据需要是否关闭Login窗体。

winform关闭登录窗体打开主窗体的方法

上一篇:View requires API level 14 (current min is 8)


下一篇:大数据分析、区块链技术赋能跨境平台,魔橙加快布局产品线