多くのプロジェクトでは、英語、ドイツ語、日本語など、複数のカルチャを扱わなければなりません。.NET Framework は、複数のカルチャに対する優れたサポートを提供しており、WinGrid のユーザーもこの機能を利用することができます。
異なるカルチャに対する日付の書式はどのように設定しますか?
特定のカルチャに合わせて列の書式を設定するには、定義済みの書式と System.Globalization.CultureInfo オブジェクトを組み合わせて使用します。
一般的に使用される定義済みの数値書式には、次のようなものが含まれます。
一般的に使用される定義済みの日付書式には、次のようなものが含まれます。
警告: WinGrid の .Format プロパティを使用するときには、.NET の書式指定文字や書式指定文字列ではなく、CultureInfo の書式指定文字を使用してください。短い日付を使用したい場合は、DateTimeFormat として有効な "d" を使用してください。 CultureInfo オブジェクトでは、短い日付の値は有効ではありません。
このサンプル プロジェクトでは、日付の列をアメリカ英語、ドイツ語、日本語で表示します:
UltraWinGrid イベント領域には次のイベント ハンドラが含まれます。
UltraGrid1.InitializeLayout - InitializeLayout イベントのコードでは、利用可能なスペースに列を合わせ、テキストを右寄せで配置し、3 つのカルチャそれぞれに対するCultureInfoオブジェクトを作成して、日付の .Format プロパティおよび .FormatInfo プロパティを設定するようグリッドに指示しています。
Visual Basic の場合:
Imports System.Globalization Imports Infragistics.Win Imports Infragistics.Win.UltraWinGrid ... Private Sub UltraGrid1_InitializeLayout(ByVal sender As Object, _ ByVal e As Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs) _ Handles UltraGrid1.InitializeLayout ' 列を合わせます。 e.Layout.AutoFitStyle = AutoFitStyle.ExtendLastColumn ' カルチャ オブジェクトを作成します。 Dim cultureENUS As CultureInfo = CultureInfo.CreateSpecificCulture("en-us") Dim cultureDEDE As CultureInfo = CultureInfo.CreateSpecificCulture("de-de") Dim cultureJAJP As CultureInfo = CultureInfo.CreateSpecificCulture("ja-jp") ' 日付書式を設定します。 e.Layout.Bands(0).Columns("OrderDate").Format = "d" e.Layout.Bands(0).Columns("OrderDate").FormatInfo = cultureENUS e.Layout.Bands(0).Columns("RequiredDate").Format = "d" e.Layout.Bands(0).Columns("RequiredDate").FormatInfo = cultureDEDE e.Layout.Bands(0).Columns("ShippedDate").Format = "d" e.Layout.Bands(0).Columns("ShippedDate").FormatInfo = cultureJAJP End Sub
C# の場合:
using System.Globalization; using Infragistics.Win; using Infragistics.Win.UltraWinGrid; ... private void ultraGrid1_InitializeLayout(object sender, Infragistics.Win.UltraWinGrid.InitializeLayoutEventArgs e) { // 列を合わせます。 e.Layout.AutoFitStyle = AutoFitStyle.ExtendLastColumn; // カルチャ オブジェクトを作成します。 CultureInfo cultureENUS = CultureInfo.CreateSpecificCulture("en-us"); CultureInfo cultureDEDE = CultureInfo.CreateSpecificCulture("de-de"); CultureInfo cultureJAJP = CultureInfo.CreateSpecificCulture("ja-jp"); // 日付書式を設定します。 e.Layout.Bands[0].Columns["OrderDate"].Format = "d"; e.Layout.Bands[0].Columns["OrderDate"].FormatInfo = cultureENUS; e.Layout.Bands[0].Columns["RequiredDate"].Format = "d"; e.Layout.Bands[0].Columns["RequiredDate"].FormatInfo = cultureDEDE; e.Layout.Bands[0].Columns["ShippedDate"].Format = "d"; e.Layout.Bands[0].Columns["ShippedDate"].FormatInfo = cultureJAJP; }
このプロジェクトでは、CultureInfo オブジェクトの作成方法と、数値と日付をカルチャの特定の書式で表示するために、作成したオブジェクトを列に適用する方法を紹介しています。