點擊下載原始碼
互連網無國界,越來越多的應用程式必須面對全球使用者了,如何設計一個支援多國語言的應用程式呢?
在.net2.0 中,m$ 為我們提供了一種簡單方便的方法, 使用資源檔
1.建立一個 Winform 應用程式, 建立一 Form ,名為 Form1,添加兩個按鈕 btnChinese, btnEnglish
2. 設定 Form1 的 Localizable 屬性為 true, 設定該屬性後,.net 將根據不同的語言,為應用程式產生不同的資源檔
3.設定各個控制項的文本(系統預設語言下)
4.更改 Form1 的 Language 屬性為想要支援的另一種語言,此例中我們選用 English
5.重新設定各個控制項的文本
註:此時.net 將為 Form1 產生另一個資源檔,在本例中名為 Form1.en.resx
6. 如果有其它的語言要設定,請重複第4,第5步
7.編寫代碼
private void btnChinese_Click(object sender, EventArgs e)
{
//更改當前線程的 CultureInfo
//zh-CN 為中文,更多的關於 Culture 的字串請查 MSDN
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("zh-CN");
//對當前表單應用更改後的資源
ApplyResource();
}
private void btnEnglish_Click(object sender, EventArgs e)
{
//更改當前線程的 CultureInfo
//en 為英文,更多的關於 Culture 的字串請查 MSDN
Thread.CurrentThread.CurrentUICulture = CultureInfo.GetCultureInfo("en");
//對當前表單應用更改後的資源
ApplyResource();
}
/**//// <summary>
/// 應用資源
/// ApplyResources 的第一個參數為要設定的控制項
/// 第二個參數為在資源檔中的ID,預設為控制項的名稱
/// </summary>
private void ApplyResource()
{
System.ComponentModel.ComponentResourceManager res = new ComponentResourceManager(typeof(Form1));
foreach (Control ctl in Controls)
{
res.ApplyResources(ctl, ctl.Name);
}
}
大致的代碼就完成了,此時點擊 “中文”按鈕,畫面切換為中文,點擊“英文”按鈕,畫面立即切換為英文