如何关闭表格并重新打开它?
How to close form and reopen it?
我允许用户更改一些设置(语言 - 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());
和一个打开新线程的解决方案。
None 有效,或者部分有效,但存在一些问题,例如无法很好地关闭程序或其他一些问题。
有没有一些新的简单方法可以做到这一点?
或者我最好显示用户对话框消息 "Do you want to restart program to show new language?"
谢谢
要重新启动您的应用程序,您可以使用 Application.Restart()
方法。它关闭应用程序并立即启动一个新实例:
Application.Restart();
您可以在这里创建一个新的全局表单:
public partial class Form1 : Form
{
frmMain form = new frmMain(); // add your form here
public Form1()
{
//something...
}
//some another functions ...
private void btnOpenYourForm_Click(object sender, EventArgs e)
{
form = new frmMain(); // open your form here
form.Show();
}
}
希望对你有用。
我允许用户更改一些设置(语言 - 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());
和一个打开新线程的解决方案。
None 有效,或者部分有效,但存在一些问题,例如无法很好地关闭程序或其他一些问题。 有没有一些新的简单方法可以做到这一点?
或者我最好显示用户对话框消息 "Do you want to restart program to show new language?"
谢谢
要重新启动您的应用程序,您可以使用 Application.Restart()
方法。它关闭应用程序并立即启动一个新实例:
Application.Restart();
您可以在这里创建一个新的全局表单:
public partial class Form1 : Form
{
frmMain form = new frmMain(); // add your form here
public Form1()
{
//something...
}
//some another functions ...
private void btnOpenYourForm_Click(object sender, EventArgs e)
{
form = new frmMain(); // open your form here
form.Show();
}
}
希望对你有用。