窗体未关闭
本文关键字:窗体 | 更新日期: 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..你的问题不太清楚。所以它不能关闭。如果你不想让它出现在后台,你应该把它隐藏起来。