多くのプロジェクトでは、英語、ドイツ語、日本語など、複数のカルチャを扱わなければなりません。.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 オブジェクトの作成方法と、数値と日付をカルチャの特定の書式で表示するために、作成したオブジェクトを列に適用する方法を紹介しています。