none
請問在智慧型裝置專案開發中,要如何去設定Form的文化特性? RRS feed

  • 問題

  •         小弟使用c#智慧型裝置專案開發pda,因Form介面需不同語言,所以利用Form屬性中的Language來設定不同語言。

    在Windows Form專案中可使用: Thread.CurrentThread.CurrentUICulture = new CultureInfo(xx-xxx);
    來設定文化特性,但pda的開發好像沒有Thread.CurrentThread.CurrentUICulture這個類別。

    請問在智慧型裝置專案開發中,要如何去設定Form的文化特性(程式碼如何寫)?
    2009年4月7日 上午 07:14

解答

所有回覆

  • Hi jerochwjc500,

    找一下就有了喔,請參考:
    http://social.msdn.microsoft.com/Forums/en-US/netfxcompact/thread/adf9d0ac-f313-41a5-b865-53222e923e8d/
    每天都有進步的人值得敬重
    • 已標示為解答 jerochwjc500 2009年4月8日 上午 01:47
    2009年4月7日 下午 01:23
  • 非常感謝您!我另外看到一篇,參考以下:
    http://social.msdn.microsoft.com/Forums/zh-TW/803/thread/ed6da19c-2e16-41f7-bfe1-122a043eae68/

    測試後,可以切換zh-Tw或en-US不同resx檔,改變控制元件(如:Buttion、Label)上的文字,但必須一個個控制元件,變更屬性。
    如:(下列語法,將某語系中的文字設定給buttion和label。細節請參考上列網址)
                                                                  .
                                                                  .
                                                                  .
                                                                  .
                btnStart.Text = resources.GetString("btnSelect.Text", Culture);
                btnStart.Text = resources.GetString("btnDelete.Text", Culture);
                label1.Text = resources.GetString("label1.Text", Culture);

    在Windows Form中,不同語系控制元件大小拉好後,使用Thread.CurrentThread.CurrentUICulture = new CultureInfo(xx-xxx)設定語系,Form的排版就會直接顯示該語系的畫面;而在mobile上時,只能一個個去改控制元件文字、設定大小、位置等…。

    看來我目前只有兩種方法可以作:
    1.同專案中,使用兩種語言resx檔,要切換語系時,一個個去改控制元件屬性。(只有一個.cab檔,點程式選擇語言)(缺點:當兩個語系控制元件大小與排版不一樣時,需一個個設定屬性)
    2.做成兩種不同專案,包成兩個cab檔,一個是英文版、一個是中文版,需要中文就安裝中文版.cab檔。(缺點:若其中一版本程式碼變動,另一版本也要跟著變)

    感謝大家幫忙,若有更好方法請不吝提供,謝謝!



    2009年4月8日 上午 01:45
  • 再補充一點,原來在mobile上要套用不同resx檔,可透過mobile os上的區域設置(Regional)裡,選擇語言(Language)。
    只要變更語系,程式開啟後就會自動辨識目前作業系統的語系,而選擇使用哪個resx檔。

    等於要從作業系統去選擇使用哪種語言,而不是程式碼控制。
    2009年4月8日 上午 08:56