在我的程序中,我在主窗体之前显示一个登录表单,一旦程序检测到成功登录,我就用它:
MainForm Main = new MainForm();
Main.Show();
this.Hide();
Run Code Online (Sandbox Code Playgroud)
这工作正常,但有一个问题,登录表单仍然是打开的,即使它是隐藏的,所以当程序关闭时,进程仍然挂起,我怎么能阻止这种情况发生?
对不起,忘了添加,使用this.Close();
不起作用,将完全关闭该程序.
Dav*_*ton 10
尝试更像这样的东西:
this.Hide();
Main.ShowDialog();
this.Close();
Run Code Online (Sandbox Code Playgroud)
您希望在显示对话框之前隐藏登录表单,然后在关闭对话框后关闭登录表单.
简单地关闭"登录"对话框最终将结束应用程序,因此这不是一个真正的解决方案,但您仍然希望隐藏登录.
简单地说,按照您希望它们进入的顺序放置内容,尤其是在处理消息循环时.
首先,隐藏登录表单.
接下来,显示"主窗体"对话框,但阻止"ShowDialog()"的调用者继续,直到关闭对话框.
最后,关闭对话框后,关闭登录表单,结束应用程序.
您需要指定您MainForm
何时启动应用程序,并在Load
此表单的事件处理程序中请求登录.在这种情况下,您将运行应用程序并Login
在启动时:
Program.cs中
Application.Run(new MainForm());
Run Code Online (Sandbox Code Playgroud)
MainForm.cs
private void Form1_Load(object sender, EventArgs e)
{
LoginForm loginForm = new LoginForm();
if (loginForm.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
// check login here
}
}
Run Code Online (Sandbox Code Playgroud)
Close
如果它是您的应用程序的主要形式,PS 将完全关闭您的应用程序.
归档时间: |
|
查看次数: |
6055 次 |
最近记录: |