HIRO's.NET

VB.NET, C#, PowerShell Tipsサイト

 VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。

 基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。

HIRO's.NET RSSHIRO's.NET RSS


C# 2003の開発でお困りのことはありませんか?
そんな悩みは当サイトで解決!!

HOME > C# 2003 Tips > コントロール > DataGrid Tips メニュー

23.CheckBoxを表示する

UPDATE:2004/09/14 

<< 前のTips  次のTips >>

 

 DataGridにCheckBoxを表示する機能は標準で提供されていますが、結構面倒なので下記に手順を示します。
1.列を作成してテーブルに追加します
2.新しいテーブルスタイルを宣言してマップ名を設定します
  マップ名にはテーブル名をセットします
3.新しい列スタイルを宣言します。
  列スタイルをDataGridBoolColumnで作成することでCheckBoxを表示できるようになります
4.ヘッダーテキストに列名を設定する(これを行わないと、DataGridに列名が表示されなくなる)
5.チェックボックスにNULLが表示されないようにします。
6.作成した列スタイルを1.で作成したDataGridTableStyleに追加する
2.~6.を列の数だけ行います。
7.DataGridにテーブルを表示します

 
サンプル
private void Form1_Load(object sender, System.EventArgs e)
{

    // 列を作成してテーブルに列を追加します
    DataSet dataSet1 = new DataSet("SAMPLE");
    DataTable dataTable1 = dataSet1.Tables.Add("SAMPLE");
    DataColumn dc1 = dataTable1.Columns.Add("列1", typeof(string));
    DataColumn dc2 = dataTable1.Columns.Add("列2", typeof(string));
    DataColumn dc3 = dataTable1.Columns.Add("列3", typeof(bool));

    // 新しいテーブル スタイルを宣言し、そのマップ名を設定します。
    // マップ名にはテーブル名をセットします
    DataGridTableStyle DGTS = new DataGridTableStyle();
    DGTS.MappingName = dataTable1.TableName;
    dataGrid1.TableStyles.Add(DGTS);

    // 新しい列スタイルを宣言します
    // style3をDataGridBoolColumnで宣言することで
    // チェックボックスを表示できるようします
    DataGridTextBoxColumn style1 = new DataGridTextBoxColumn();
    DataGridTextBoxColumn style2 = new DataGridTextBoxColumn();
    DataGridBoolColumn style3 = new DataGridBoolColumn();
    style1.MappingName = dc1.ColumnName;
    style2.MappingName = dc2.ColumnName;
    style3.MappingName = dc3.ColumnName;

    // ヘッダーテキストに列名をセットします
    style1.HeaderText = dc1.ColumnName;
    style2.HeaderText = dc2.ColumnName;
    style3.HeaderText = dc3.ColumnName;

    // チェック・ボックスにNULLが設定されないようします
    style3.AllowNull = false;

    // 作成した各列のスタイルをDataGridTableStyleに追加します
    DGTS.GridColumnStyles.Add(style1);
    DGTS.GridColumnStyles.Add(style2);
    DGTS.GridColumnStyles.Add(style3);

    // テーブルにデータを追加します
    dataTable1.Rows.Add(new Object[] {1, "C", true});
    dataTable1.Rows.Add(new Object[] {2, "VB", false});
    dataTable1.Rows.Add(new Object[] {3, "C#", true});
    dataTable1.Rows.Add(new Object[] {4, "JAVA", false});
    dataTable1.Rows.Add(new Object[] {5, "Perl", true});
    dataTable1.Rows.Add(new Object[] {6, "PHP", true});

    // データグリッドにテーブルを表示します
    dataGrid1.SetDataBinding(dataSet1, dataTable1.TableName);

}
 

<< 前のTips  次のTips >>