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的配置。
也可以在窗體啟動前彈出對話框又用戶選擇語言,詳細請下載源代碼。
柔城多語言實例源碼下載地址:http://files.cnblogs.com/sosoft/SosoftMultiLanguages.rar