【发布时间】:2018-11-25 17:23:06
【问题描述】:
我允许用户更改一些设置(语言 - UI 文化)并以新语言显示当前表单,我需要关闭表单并重新打开它。
我正在使用 Windows 窗体。在 Program.cs 中,首先显示启动画面,然后显示登录表单,然后使用
运行主表单Application.Run(new frmMain());.
我尝试了几种提供的解决方案,其中包括:
Controls.Clear();
InitializeComponent();
我也试过
var form = new frmMain();
form.Show();
this.Hide();
还有
this.Close();// note I tried before and after.
var form = new frmMain();
form.Show();
我也尝试过表单关闭事件
Application.Run(new frmMain());
以及一种打开新线程的解决方案。
这些都不起作用,或者部分起作用,有一些问题,比如没有很好地关闭程序,或者其他一些问题。 是否有一些新的简单方法可以做到这一点?
或者我最好显示用户对话框消息“你想重新启动程序以显示新语言吗?”
谢谢
【问题讨论】:
-
你可以使用
Application.Restart(); -
谢谢 Reza,太棒了,我找到了你发布的这个解决方案。有用。我可以将您的答案标记为好。我已经测试过了,它可以正常工作,它可以很好地重新启动一个应用程序,
-
Reza,您可以添加您的答案作为解决方案。
-
请注意:在 FormClosing 事件中,您可以放置代码以保存对 ApplicationSettings 的更改。有两种方法可以做到这一点,其中一种方法更容易使用 myApplicationSettings.Save();包装类 MyUserSettings : ApplicationSettingsBase
标签: c# .net winforms application-restart