HIRO's.NET

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

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

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

HIRO's.NET RSSHIRO's.NET RSS


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

HOME > VB.NET 2003 Tips > コントロール > DataGrid Tips メニュー

23.CheckBoxを表示する

UPDATE:2004/09/06 

<< 前のTips  次のTips >>

 

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

 
サンプル
 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load

    '列を作成してテーブルに列を追加します
    Dim dataSet1 As New DataSet("SAMPLE")
    Dim dataTable1 As DataTable = dataSet1.Tables.Add("SAMPLE")
    Dim dc1 As DataColumn = dataTable1.Columns.Add("列1", GetType(String))
    Dim dc2 As DataColumn = dataTable1.Columns.Add("列2", GetType(String))
    Dim dc3 As DataColumn = dataTable1.Columns.Add("列3", GetType(Boolean))

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

    '新しい列スタイルを宣言します
    'style3をDataGridBoolColumnで宣言することで
    'チェックボックスを表示できるようします
    Dim style1 As New DataGridTextBoxColumn
    Dim style2 As New DataGridTextBoxColumn
    Dim style3 As 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)

End Sub
 

<< 前のTips  次のTips >>