星星之火

燎原之势不可挡
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

  有许多人在用做c# 做登录窗体时会遇到这样的问题,登录成功后当前登录Form关闭,打开Main窗体,但Main窗体点关闭按钮后程序仍在进程仍旧在运行。

           事实上,关闭Main窗体,只是关闭了Main窗体的线程,并没有关闭程序的主线程,即程序的主线程为登录From。

           有些人会采用这样的做法:

                   MainForm  mainForm=new MainForm();

                   mainForm.Show();

                   this.Visible=false;//或者this.Hide();

            这样当前登录窗体只是被隐藏了,并没有被关闭,所以即使在关闭MainForm后,程序的进程仍在运行。

          解决方法如下:

          在 Program.cs文件中做如下修改

                      /// <summary>    

                      /// 应用程序的主入口点。      

                      /// </summary>

                      [STAThread]      

                      static void Main()      

                     {          

                       Application.EnableVisualStyles();          

                       Application.SetCompatibleTextRenderingDefault(false);          

                       LoginForm loginForm = new LoginForm();          

                       if (loginForm.ShowDialog() == DialogResult.OK)          

                       {              

                         Application.Run(new MainForm());          

                       }      

                     }

                然后在登录窗体 如果登录成功 添加这段代码               

                     this.DialogResult = DialogResult.OK;              

                     this.Close();

           快来试试吧!