c# – 如何在运行时更改WinForms应用程序的文化
发布时间:2020-12-15 17:45:33 所属栏目:百科 来源:网络整理
导读:我在C#中创建了 Windows Form Program.我有一些本地化问题.我有2种语言的资源文件(一种用于英文,另一种用于法文).我想单击每个语言按钮,并在运行时更改语言. 但是当我点击按钮时,它不起作用.我正在使用这个代码. private void btnfrench_Click(object sender
我在C#中创建了
Windows Form Program.我有一些本地化问题.我有2种语言的资源文件(一种用于英文,另一种用于法文).我想单击每个语言按钮,并在运行时更改语言.
但是当我点击按钮时,它不起作用.我正在使用这个代码. private void btnfrench_Click(object sender,EventArgs e) { getlanguage("fr-FR"); } private void getlanguage(string lan) { foreach (Control c in this.Controls) { ComponentResourceManager cmp = new ComponentResourceManager(typeof(BanksForm)); cmp.ApplyResources(c,c.Name,new CultureInfo(lan)); } } 会有什么帮助吗 非常感谢…. 解决方法
这是有效的:
private void button1_Click(object sender,EventArgs e) { System.Threading.Thread.CurrentThread.CurrentUICulture = new System.Globalization.CultureInfo("fr-BE"); ComponentResourceManager resources = new ComponentResourceManager(typeof(Form1)); resources.ApplyResources(this,"$this"); applyResources(resources,this.Controls); } private void applyResources(ComponentResourceManager resources,Control.ControlCollection ctls) { foreach (Control ctl in ctls) { resources.ApplyResources(ctl,ctl.Name); applyResources(resources,ctl.Controls); } } 小心避免添加这样的口哨,没有人会使用. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |