如何:設定 Windows Form 全球化的文化特性和 UI 文化特性

Visual Basic 或 Visual C# 應用程式的兩個文化特性 (Culture) 值決定應用程式所要載入的資源,以及如何設定貨幣、數字及日期之類的資訊格式。 要載入的資源是由 UI 文化特性設定所決定,而格式化選項則是由文化特性設定所決定。 應用程式尋找文化特性值的第一個位置是 CurrentCultureCurrentUICulture 屬性。 您可以在程式碼中設定這些值,如下列程序所示。

CurrentCulture 屬性的預設值是作業系統的使用者地區設定,這是在 [地區選項] 控制台中進行設定。 CurrentUICulture 屬性的預設值是作業系統的使用者介面 (UI) 語言,這是作業系統 UI 的語言。 在 Windows 2000 和 Windows XP MultiLanguage Edition 上,CurrentUICulture 預設為目前的使用 UI 語言設定值。

在某些執行個體中,您可能想要讓大部分應用程式根據作業系統或使用者的文化特性設定進行變更,但是有一些數字或日期不變更。 您可利用文化特性特定類別來格式化具有不因文化特性而異的資訊,這類資訊只和英並沒有和特定地區有關聯。 如需這些類別的詳細資訊,請參閱Formatting for Different CulturesSystem.Globalization。 如需不因文化特性而異的詳細資訊,請參閱InvariantCulture。 如需可能的文化特性設定的詳細資訊,請參閱 CultureInfo

若要設定適合特定文化特性的格式化選項

  1. 如果您想要覆寫使用者或作業系統的設定,請設定 CurrentCultureCurrentUICulture 屬性。

    一般而言,您會想要指定文化特性,使應用程式 UI 的所有部分都適合該文化, 因此您必須在呼叫 InitializeComponent 方法之前設定文化特性。

    ' Put the Imports statements at the beginning of the code module
    Imports System.Threading
    Imports System.Globalization
    ' Put the following code before InitializeComponent()
    ' Sets the culture to French (France)
    Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR")
    ' Sets the UI culture to French (France)
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR")
    
    // Put the using statements at the beginning of the code module
    using System.Threading;
    using System.Globalization;
    // Put the following code before InitializeComponent()
    // Sets the culture to French (France)
    Thread.CurrentThread.CurrentCulture = new CultureInfo("fr-FR");
    // Sets the UI culture to French (France)
    Thread.CurrentThread.CurrentUICulture = new CultureInfo("fr-FR");
    
    注意事項注意事項

    文化特性值必須一定是特定的文化特性 (例如,"fr-FR"),而不是中性文化特性 (例如,"fr")。像是 "fr" 之類的中性文化特性很麻煩,因為它可以套用至所有說法文的文化,而法國、比利時及魁北克卻使用不同的貨幣。

  2. 不論 CurrentCulture 屬性的值如何設定,對於任何顯示應維持不變的字串,請使用不變文化特性來呼叫格式化方法。

    Dim MyInt As Integer = 100
    Dim MyString As String = MyInt.ToString("C", CultureInfo.InvariantCulture)
    MessageBox.Show(MyString)
    
    int MyInt = 100;
    string MyString = MyInt.ToString("C", CultureInfo.InvariantCulture);
    MessageBox.Show(MyString);
    

請參閱

參考

CurrentCulture

CurrentUICulture

CultureInfo

其他資源

全球化應用程式

全球化和當地語系化應用程式

全球化 Windows Form