Visual Studio可以很好的支持WinForm多语言界面的实现。
首先使用Visual Studio创建一个WinForm项目,在窗体上放上所需的控件,调好位置,并使用一种语言(例如简体中文)编辑好窗体和控件的Text等属性。
然后点击窗体,设置窗体的Localizable属性为True。
接着把窗体的Language属性选择为所需其它的语言,例如英语。接着用所选语言编辑窗体和控件的Text等属性,调整好位置。
然后为项目添加一个配置文件app.config,在配置文件中增加文化条目SosoftCulture:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <appSettings> <add key="SosoftKey" value="sosoftValue" /> <add key="SosoftURL" value="sosoft.cnblogs.com" /> <add key="SosoftProject" value="sosoft.codeplex.com" /> <add key="SosoftCulture" value="en" /> </appSettings> </configuration>
这里SosoftCulture的值“en”表示英语,如果要设为中文可以改为“zh”。
接着可以在启动程序的时候,读取配置文件的文化设置,把界面显示为相应的语言界面。
例如在窗体的构造函数中,在InitializeComponent();之前,加入SetCulture();
SetCulture()方法具体代码如下:
private void SetCulture() { m_culture = SosoftConfigHelper.GetAppConfig("SosoftCulture"); if (string.IsNullOrEmpty(_culture)) return; try { CultureInfo m_ci = new CultureInfo(m_culture); Thread.CurrentThread.CurrentCulture = m_ci; Thread.CurrentThread.CurrentUICulture = m_ci; } catch { } }
其中SosoftConfigHelper类是配置文件读写类,需添加到项目中,请参考http://www.cnblogs.com/sosoft/archive/2012/09/26/sosoftconfighelper.html
记得引用命名空间
using System.Globalization;
using System.Threading;
按F5运行,就可以显示所配置语言的界面了。要改变界面只需改变SosoftCulture的配置。
也可以在窗体启动前弹出对话框又用户选择语言,详细请下载源代码。
柔城多语言实例源码下载地址:https://files.cnblogs.com/sosoft/SosoftMultiLanguages.rar