我想创建本地化的应用程序,并希望实现一个语言切换器(例如特殊按钮) . 我使用Visual Studio 2010 express(VB.NET) .
我用一个标签和一个按钮创建了简单的测试应用程序 . 我将表单的属性“Localizable”设置为“True”,并将编辑的组件文本设置为2种语言(默认为英语和俄语) .
我知道需要添加
Imports System.Threading.Thread
Imports System.Globalization
在Form1.vb的开头然后使用
Thread.CurrentThread.CurrentUICulture = New CultureInfo("ru")
启用俄语本地化 . 但是,如果我把这一行放入Button_Click事件,它不会改变语言 . 是否可以在按钮单击或组合框更改等事件之间切换语言?
先感谢您!
2 回答
是的,您可以在Button Click事件或更改事件上实现本地化 . 您可以将文化设置为
这些链接将帮助您:Globalizing and Localizing Windows Application,Walkthrough: Localizing Windows Forms,Localizing Applications
这是一个可能的解决方法:https://social.msdn.microsoft.com/Forums/en-US/72f70870-0c0c-4eb1-886b-9db9917d080a/form-support-multilanguage-at-runtime-in-windows-based-application#8c775cc0-5e5e-4551-b5d1-52bb5c1663e8
首先更改CurrentUICulture,然后强制将新文化的资源应用于所有控件 .
此代码示例循环遍历
Me.Controls
,但您也应循环子容器(面板等) .这样做会改变字符串,位置,大小等 .
编辑:您还可以使用以下方法更改线程的默认文化:
这样,您在运行时创建的所有新表单都将使用此新的CultureInfo .