DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

DataGridViewのセルに表示するテキストの書式(フォーマット)を指定する

注意:DataGridViewコントロールは、.NET Framework 2.0で新しく追加されました。

例えば「100000」という数値データを「\100,000」と表示したり、「2003/5/1」という日時データを「2003年5月1日」と表示するために、テキストの書式(フォーマット)を指定する方法を紹介します。

セルのテキストの書式は、セルスタイル(DataGridViewCellStyleオブジェクト)のFormatプロパティに、ToStringメソッドなどで使用されるのと同じ書式指定文字列で指定します。なお、セルスタイルに関する知識の無い方は、まずは「DataGridViewにセルスタイルを設定する」をお読みください。

例えば、「Column1」という名前の列で「100000」が「\100,000」のように地域通貨の書式で表示されるようにするには、次のようにします。

VB.NET
コードを隠すコードを選択
'"Column1"列のセルのテキストの書式を地域通貨として指定する
DataGridView1.Columns("Column1").DefaultCellStyle.Format = "c"
C#
コードを隠すコードを選択
//"Column1"列のセルのテキストの書式を地域通貨として指定する
DataGridView1.Columns["Column1"].DefaultCellStyle.Format = "c";

なお書式指定文字に関しては、「書式を指定して数値を文字列に変換する」や「日時(DateTimeオブジェクト)を文字列に変換する」などを参考にしてください。

書式化(フォーマット)された文字列を取得する

DataGridViewCell.Valueプロパティは、セルの実際の値です。セルの表示用の書式化(フォーマット)された文字列(上記の例では、「\100,000」など)を取得するには、DataGridViewCell.FormattedValueプロパティ(または、DataGridViewCell.GetFormattedValueメソッド)を使います。FormattedValueプロパティの値の型は、DataGridViewCell.FormattedValueTypeプロパティで取得できます。

VB.NET
コードを隠すコードを選択
'セルの値を表示
Console.WriteLine(DataGridView1(0, 0).Value)
'セルの書式指定済みの値を表示
Console.WriteLine(DataGridView1(0, 0).FormattedValue)
C#
コードを隠すコードを選択
//セルの値を表示
Console.WriteLine(DataGridView1[0, 0].Value);
//セルの書式指定済みの値を表示
Console.WriteLine(DataGridView1[0, 0].FormattedValue);

カルチャを指定する

書式のカルチャは、DataGridViewCellStyle.FormatProviderプロパティで指定できます。

次の例では、1列目と2列目の書式を地域通貨とし、2列目のカルチャを米国英語にしています。

VB.NET
コードを隠すコードを選択
'列のセルのテキストの書式を地域通貨として指定する
DataGridView1.Columns(0).DefaultCellStyle.Format = "c"
DataGridView1.Columns(1).DefaultCellStyle.Format = "c"

'2列目のカルチャを変更する
DataGridView1.Columns(1).DefaultCellStyle.FormatProvider = _
    New System.Globalization.CultureInfo("en-US")
C#
コードを隠すコードを選択
//列のセルのテキストの書式を地域通貨として指定する
DataGridView1.Columns[0].DefaultCellStyle.Format = "c";
DataGridView1.Columns[1].DefaultCellStyle.Format = "c";
//2列目のカルチャを変更する
DataGridView1.Columns[1].DefaultCellStyle.FormatProvider =
    new System.Globalization.CultureInfo("en-US");

この結果、例えば、次のようになります。

カルチャを指定した例

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。