.NET TIPS

DataGridコントロールの入力項目でチェック・ボックスを使用するには?

デジタルアドバンテージ
2004/01/09

 DataGridコントロールにおいて、入力されるデータが「あり/なし」や「ON/OFF」などの二者択一の場合、通常のテキスト・ボックスなどよりもチェック・ボックスの方が便利だ。DataGridコントロールでは、このチェック・ボックスを表示する機能が標準で提供されている。

DataGridコントロールでのチェック・ボックスの利用
DataGridコントロールは標準の機能としてチェック・ボックスを表示できる。

 上の図のように、DataGridコントロールでチェック・ボックスを表示するには、DataGridBoolColumnクラス(System.Windows.Forms名前空間)のオブジェクトを使って列のスタイルを定義し、その列スタイルをDataGridコントロールのテーブル・スタイルに追加するだけである。

 具体的にはまず、チェック・ボックスを表示する列のスタイルを定義したDataGridBoolColumnクラスのオブジェクトを、DataGridコントロールの列スタイルのコレクションであるDataGridTableStyleクラスのオブジェクトのGridColumnStylesプロパティにAddメソッドを使って追加する。次に、その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(bool));
  // テーブルのスタイルを作成
  DataGridTableStyle dgTableStyle = new DataGridTableStyle();
  dgTableStyle.MappingName = dataTable1.TableName;
  dataGrid1.TableStyles.Add(dgTableStyle);
  // テーブルの列のスタイルを作成
  DataGridTextBoxColumn dgColumnStyle1 = new DataGridTextBoxColumn();
  DataGridTextBoxColumn dgColumnStyle2 = new DataGridTextBoxColumn();
  DataGridBoolColumn  dgColumnStyle3 = new DataGridBoolColumn();
  dgColumnStyle1.MappingName = dataClumn1.ColumnName;
  dgColumnStyle2.MappingName = dataClumn2.ColumnName;
  dgColumnStyle3.MappingName = dataClumn3.ColumnName;
  // ヘッダーにタイトルを設定
  dgColumnStyle1.HeaderText = dataClumn1.ColumnName;
  dgColumnStyle2.HeaderText = dataClumn2.ColumnName;
  dgColumnStyle3.HeaderText = dataClumn3.ColumnName;
  // チェック・ボックスにNULLを認めない。常にONかOFFを指定させる
  dgColumnStyle3.AllowNull = false;
  // 列のスタイルをテーブル・スタイルに登録
  dgTableStyle.GridColumnStyles.Add(dgColumnStyle1);
  dgTableStyle.GridColumnStyles.Add(dgColumnStyle2);
  dgTableStyle.GridColumnStyles.Add(dgColumnStyle3);

  // テーブルにデータを追加
  dataTable1.Rows.Add(new Object[] {1, "みかん", true});
  dataTable1.Rows.Add(new Object[] {2, "りんご", false});
  dataTable1.Rows.Add(new Object[] {3, "バナナ", false});
  dataTable1.Rows.Add(new Object[] {4, "すいか", true});
  dataTable1.Rows.Add(new Object[] {5, "いちご", true});
  dataTable1.Rows.Add(new Object[] {6, "メロン", true});

  // データグリッドにテーブルを表示する
  dataGrid1.SetDataBinding(dataSet1, dataTable1.TableName);
}
DataGridコントロールでチェック・ボックスを表示するC#のプログラム
サンプル・プログラムのダウンロード(C#VB.NET

 ここでの注意点は、チェック・ボックスを表示する列のデータ型は必ずbool型(Boolean型)にすることである。

 なお、チェック・ボックスのデータを常にON(true)またはOFF(false)のいずれかの値に設定する(つまり、nullが設定されないようにする)には、DataGridBoolColumnオブジェクトのAllowNullプロパティにfalseを設定する。End of Article

カテゴリ:Windowsフォーム 処理対象:DataGridコントロール
使用ライブラリ:DataGridコントロール
使用ライブラリ:DataGridBoolColumnクラス(System.Windows.Forms名前空間)
使用ライブラリ:DataGridTableStyleクラス(System.Windows.Forms名前空間)
 
この記事と関連性の高い別の.NET TIPS
DataGridコントロールでソートを禁止するには?
DataGridコントロールで列の幅を指定するには?
DataGridコントロールで行の追加/削除およびデータ編集を禁止するには?
DataGridコントロールで列の中央ぞろえや右ぞろえを指定するには?
[ASP.NET]DataGridコントロールの編集用テキストボックスを大きくするには?
このリストは、(株)デジタルアドバンテージが開発した
自動関連記事探索システム Jigsaw(ジグソー) により自動抽出したものです。
generated by

「.NET TIPS」


Insider.NET フォーラム 新着記事
  • 第2回 簡潔なコーディングのために (2017/7/26)
     ラムダ式で記述できるメンバの増加、throw式、out変数、タプルなど、C# 7には以前よりもコードを簡潔に記述できるような機能が導入されている
  • 第1回 Visual Studio Codeデバッグの基礎知識 (2017/7/21)
     Node.jsプログラムをデバッグしながら、Visual Studio Codeに統合されているデバッグ機能の基本の「キ」をマスターしよう
  • 第1回 明瞭なコーディングのために (2017/7/19)
     C# 7で追加された新機能の中から、「数値リテラル構文の改善」と「ローカル関数」を紹介する。これらは分かりやすいコードを記述するのに使える
  • Presentation Translator (2017/7/18)
     Presentation TranslatorはPowerPoint用のアドイン。プレゼンテーション時の字幕の付加や、多言語での質疑応答、スライドの翻訳を行える
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Insider.NET 記事ランキング

本日 月間