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

实际使用

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();
    }
}

登录窗体(FormLogin)代码

if(textBox1.Text == "123")
{ //验证用户名密码成功
    this.DialogResult = DialogResult.OK; //返回一个登录成功的对话框状态
    this.Close(); //关闭登录窗口
}

优劣

优:1、可以防止重复运行该程序。

改进:1、根据需要是否关闭Login窗体。

其他方法一

使用Close关闭登录窗体,使用Application.Run()方法打开主窗体

Program.cs代码

FormLogin fl = new FormLogin();
fl.ShowDialog();
if(fl.DialogResult == DialogResult.OK)
{
    Application.Run(new FormMain());
}
else
{
    return;
}

登录窗体(FormLogin)代码

private void button1_Click(object sender, EventArgs e)
{
    if(textBox1.Text == "aaa")
    { //验证用户名密码成功
        this.DialogResult = DialogResult.OK; //返回一个登录成功的对话框状态
        this.Close(); //关闭登录窗口
    }
}

优劣

优:1、将登录窗体关闭,只打开主窗体。

劣:1、如果需要切换用户,还需要重新运行窗体,无法使用FormLogin.Show();方法。

其他方法二



使用Hide()方法隐藏登录窗体,使用实例化的方法打开主窗体。

优劣

原文地址:https://www.cnblogs.com/masonblog/p/12726884.html