窗体未关闭

本文关键字:窗体 | 更新日期: 2023-09-27 18:05:51

大家好,我是Windows应用的新手。

我有一个表单上的登录按钮单击事件,我已经显示给其他表单。例如,我有一个登录页面后,用户身份验证其他两个表单显示。但我希望用户认证后登录表单应该关闭,但其他两个保持打开。

下面是代码,我的登录表单名称是LogIn.cs

private void btnLogIn_Click(object sender, EventArgs e)
{
    if(ValidateUser())
    {
       //Form1
        DetailForm form = new DetailForm(txtUserName.Text.ToString());
        form.Show();
        //Form2
        Progressbar progress = new Progressbar();
        progress.Show();
    }
}

请写一些代码

窗体未关闭

可以使用form . close ()

关闭表单
private void btnLogIn_Click(object sender, EventArgs e)
{
    if(ValidateUser())
    {
       //Form1
        DetailForm form = new DetailForm(txtUserName.Text.ToString());
        form.Show();
        //Form2
        Progressbar progress = new Progressbar();
        progress.Show();
        this.Close();
    }
}

每个表单都有一个Close方法

问题是你的应用程序的主消息循环在LogIn表单中,这意味着如果你停止这个消息循环,你的应用程序就会停止。
我个人不会让登录表单拥有你的应用程序的主消息循环。我不会从登录表单打开DetailForm和ProgressBar,它没有多大意义。我将创建一些父类来控制它们。
如果你想让LogIn表单成为应用程序的主窗体,但在用户登录后隐藏它,你可以使用hide(),或者在单独的线程或进程中运行两个子窗口(不强烈推荐)。

是啊,我正要这么说,只是注意到你的最后一条评论!有ValidateUser的表单是我们的LoginForm..你的问题不太清楚。所以它不能关闭。如果你不想让它出现在后台,你应该把它隐藏起来。