這是小弟最近寫程式時遇到的問題,如果你也是用Visual Studio開發程式,而且剛好你也遇到類似問題,也就是「VS上的介面設計」跟「執行出來的結果」不一樣,那就建議妳來看一下我的解決方法,很蝦,可是很有效XD
問題敘述:
我用Visual Studio開發程式,然後我編譯程式之後,發現執行的結果跟我在Visual Studio上拉的介面是完全不一樣的
但是我的程式碼裡面都沒有任何會影響介面的東西
解決方法:
會出現這個問題,可能是你有動到Form的Language參數,開啟方案總管,然後檢查是否有語系檔在裡面,像是「Form1.zh-Hant.resx」這類的檔案,把它刪掉,然後重新編譯一次,理論上就可以解決了
你可能做了以下動作:
1.調整Form的Language=繁體中文
2.動了一下控制項
3.調整Form的Language=預設
4.在動一下控制項,然後編譯,這時就會不同了XD
原因:
原本我以為這是很神奇的Bug,後來Bill大大告訴我它會這樣子的原理我才知道原來不是Bug
整理一下思緒…
剛剛前面有講出事的步驟:
1.調整Form的Language=繁體中文
2.動了一下控制項
3.調整Form的Language=預設
4.在動一下控制項,然後編譯,這時就會不同了XD
在第2個動作時會產生Form1.zh-Hant.resx這個語系檔
這時候一切都是正常的
但是第3個步驟,我們把Language改成預設,這時候Visual Studio它的介面設計是看你原始的程式碼的,但是編譯時會把「Form1.zh-Hant.resx」放進來編譯,剛好我的電腦又是設定繁體中文語系的,這時候就遇到一個問題了,程式會自動檢查你作業系統的語系,然後套用對應的語系檔,但是語系檔裡是包含控制項位置的,所以程式執行時會套用語系檔裡的控制項位置,但是設計時是用你程式原本的,就演變成:設計、執行不同調
都弄到這個地步了
可以順勢把程式做成多國語言版XD(亂入
這…
可是我還不懂他的多國語系怎做xD
還好我都是form.onenter的時候才載入layout…..
我非常不習慣用IDE介面去layout應用程式UI….
一向使用程式碼在行內動態產生….
((所以我大學老師很恨我給的code….因為不能用IDE編輯UI~~~XD
十分習慣拉介面XD
比較省時間