.NET TIPS

DataGridコントロールで列の中央ぞろえや右ぞろえを指定するには?

デジタルアドバンテージ
2003/12/26

 DataGridコントロールでデータを表示するとき、デフォルトでは列内の文字列は左ぞろえで表示される。

DataGridコントロールによるデータの一覧表示
DataGridコントロールは、デフォルトでは列内の文字列は左ぞろえで表示する。
  左寄せで表示されている。異なるけた数の数値を表示する場合には、左ぞろえでは見にくい。
  左寄せで表示されている。

 このとき、右ぞろえや中央ぞろえ(センタリング)を行った方が見やすい場合がある。例えば数値などの場合は、右寄せの方が上下の行で数値の桁がそろうようになるので見やすいだろう。

列内の文字列の位置ぞろえを指定したDataGridコントロール
DataGridコントロールの各列内の文字列の位置ぞろえを指定している。第1列目は右ぞろえ、第2列目は中央ぞろえ、第3列目は左ぞろえを指定した。
  右寄せで表示されている。
  中央ぞろえ(センタリング)で表示されている。左寄せのときよりも見やすくなった。

 上の図のように、DataGridコントロールで、列内の文字列の位置ぞろえを行うには、DataGridTextBoxColumnクラス(System.Windows.Forms名前空間)のAlignmentプロパティに、HorizontalAlignment列挙体(System.Windows.Forms名前空間)のメンバのCenter(センタリング)、Left(左寄せ)、Right(右寄せ)のいずれかを指定する。

 この列の文字列の位置ぞろえをDataGridコントロールに適用するには、まず、列の位置ぞろえを指定したDataGridTextBoxColumnオブジェクトを、DataGridTableStyleクラスのオブジェクトのGridColumnStylesプロパティにAddメソッドを使って追加する。このGridColumnStylesプロパティは、DataGridコントロールの列のスタイルを指定するためのコレクションである。次に、そのDataGridTableStyleオブジェクトを、DataGridコントロールのテーブル・スタイルのコレクションであるTableStylesプロパティにAddメソッドにより追加する。次に具体的なコードを示す。

private void Form1_Load(object sender, System.EventArgs e)
{
  // テーブルを作成
  DataSet dataSet1 = new DataSet("商品マスター");
  DataTable dataTable1  = dataSet1.Tables.Add("商品テーブル");
  DataColumn dataClumn1 = dataTable1.Columns.Add("ID", typeof(int));
  DataColumn dataClumn2 = dataTable1.Columns.Add("商品");
  DataColumn dataClumn3 = dataTable1.Columns.Add("個数", typeof(int));

  // テーブルのスタイルを作成
  DataGridTableStyle dgTableStyle = new DataGridTableStyle();
  dgTableStyle.MappingName = dataTable1.TableName;
  dataGrid1.TableStyles.Add(dgTableStyle);

  // テーブルの列のスタイルを作成
  DataGridTextBoxColumn dgColumnStyle1
                          = new
DataGridTextBoxColumn();
  DataGridTextBoxColumn dgColumnStyle2
                          = new
DataGridTextBoxColumn();
  DataGridTextBoxColumn dgColumnStyle3
                          = new
DataGridTextBoxColumn();
  dgColumnStyle1.MappingName = dataClumn1.ColumnName;
  dgColumnStyle2.MappingName = dataClumn2.ColumnName;
  dgColumnStyle3.MappingName = dataClumn3.ColumnName;
  // *** 列の右ぞろえ、中央ぞろえ、左ぞろえを設定 ***
  dgColumnStyle1.Alignment = HorizontalAlignment.Right;
  dgColumnStyle2.Alignment = HorizontalAlignment.Center;
  dgColumnStyle3.Alignment = HorizontalAlignment.Left;
  // 列のスタイルをテーブル・スタイルに登録
  dgTableStyle.GridColumnStyles.Add(dgColumnStyle1);
  dgTableStyle.GridColumnStyles.Add(dgColumnStyle2);
  dgTableStyle.GridColumnStyles.Add(dgColumnStyle3);

  // テーブルにデータを追加
  dataTable1.Rows.Add(new Object[] {8, "みかん", 100});
  dataTable1.Rows.Add(new Object[] {9, "パイナップル", 300});
  dataTable1.Rows.Add(new Object[] {10, "バナナ", 120});
  dataTable1.Rows.Add(new Object[] {11, "すいか", 280});
  dataTable1.Rows.Add(new Object[] {12, "いちご", 200});
  dataTable1.Rows.Add(new Object[] {13, "メロン", 150});

  // データグリッドにテーブルを表示する

  dataGrid1.SetDataBinding(dataSet1, dataTable1.TableName);
}
DataGridコントロールの列の位置ぞろえを指定するC#のプログラム

 なお、このサンプル・プログラムは「TIPS:DataGridコントロールで列の幅を指定するには?」で示したサンプル・プログラム(dgcolwidth.cs)の一部(列幅を指定していたコード部分)を書き換えたものである。End of Article

カテゴリ:Windowsフォーム 処理対象:DataGridコントロール
使用ライブラリ:DataGridコントロール
使用ライブラリ:DataGridTextBoxColumnクラス(System.Windows.Forms名前空間)
使用ライブラリ:DataGridTableStyleクラス(System.Windows.Forms名前空間)
使用ライブラリ:HorizontalAlignment列挙体(System.Windows.Forms名前空間)
関連TIPS:DataGridコントロールで列の幅を指定するには?
 
この記事と関連性の高い別の.NET TIPS
DataGridViewコントロールで右寄せを行うには?
DataGridコントロールで列の幅を指定するには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」

TechTargetジャパン

Insider.NET フォーラム 新着記事

@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

RSSフィード

キャリアアップ

- PR -
@IT Sepcial

イベントカレンダー

PickUpイベント

- PR -
もっと見る
- PR -

お勧め求人情報

ホワイトペーパーTechTargetジャパン

@IT Sepcial
ソリューションFLASH