C# 模态窗

场景一

点击登录按钮,登录窗体关闭,主页面窗体打开

1、在 Program.cs中,开启登录窗体的模态窗

 FrmLogin frmLogin = new FrmLogin();
 frmLogin.ShowDialog();

2、在登录窗体中,在登录成功的逻辑后,设置登录窗体模态窗的状态,并关闭(ok)

if (isLogin)
{
    MessageBox.Show("登录成功");
    // 设置模态窗状态
    this.DialogResult = DialogResult.OK;
}

3、在Program.cs中,判断登录模态窗的状态,为ok,则打开主窗体

if (frmLogin.DialogResult == DialogResult.OK)
{
    Application.Run(new FrmMain());
}

场景二

登录窗体,点击注册按钮,注册完成,显示登录窗体

1、登录窗体,点击注册,打开注册模态窗,并隐藏登录窗体

FrmRegister frmRegister = new FrmRegister();
this.Hide();
// 打开注册模态窗
frmRegister.ShowDialog();

2、点击注册窗体注册按钮,设置注册模态窗的状态(ok,ok关闭模态窗)

this.DialogResult = DialogResult.OK;

3、在登录窗体中的注册按钮中,判断注册模态窗的状态,显示登录窗体

if (frmRegister.DialogResult == DialogResult.OK)
{
    this.Show();
}

两一种方法,使用FormClosed(比上面的好)

在登录窗体中,当监听到关闭注册窗体(包括x),显示,当前的窗体(登录窗体)

private void btnRegister_Click(object sender, EventArgs e)
{
    FrmRegister frmRegister = new FrmRegister();
    // 注册模态窗关闭,触发
    frmRegister.FormClosed += FrmRegister_FormClosed;
    this.Hide();
    // 打开注册模态窗
    frmRegister.ShowDialog();

    //if (frmRegister.DialogResult == DialogResult.OK)
    //{
    //    this.Show();
    //}
}

private void FrmRegister_FormClosed(object sender, FormClosedEventArgs e)
{
    this.Show();
}

 

posted @ 2025-07-14 19:53  市丸银  阅读(15)  评论(0)    收藏  举报