下面是引用 sob790717 於 2014-03-28 22:13 發表的 :
那請問有辦法在表單載入前執行
System.Threading.Thread.CurrentThread.CurrentUICulture = New Globalization.CultureInfo("en")
指令碼嗎?
試過幾個位置都是在表單載入後才能執行這個指令碼
導致切換語言都沒辦法切到
該程式碼通常加在 InitializeComponent 下
要執行哪都可以,但因為不會影響已經載入的視窗,所以如果在表單載入後要切換,可以
1. 要求使用者重啟程式 (建議,因為方便,不容易錯)
2. 將表單重載入
3. 手動編程 (例如教學文提到的 ComponentResourceManager + 遞迴)
#2 和 #3 看起來不難,但是會有幾個問題:
1. 處理不好的話,會和使用者目前正使用的資料衝突
例如使用者正以簡體名稱登入,雖然表單改成繁體,但是登入名稱沒改
之後用繁體名稱去修改,導致資料錯亂
2. 控制項的內容需要手動重載
因此函式要分隔開,專門做資料重載
因此大多數軟體都是用 #1 的方式,避免設計缺陷