VB.NET, C#, PowerShellを使用しているエンジニアのためのサイト。
基本的な使用方法から開発で役立つTipsまで幅広く取り扱っています。
<< 前の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 >>