下面是引用 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 的方式,避免设计缺陷