星星之火

燎原之势不可挡
随笔 - 128, 文章 - 3, 评论 - 377, 阅读 - 65万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

  有许多人在用做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();

           快来试试吧!

编辑推荐:
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构
点击右上角即可分享
微信分享提示