DataGridViewにチェックボックスを追加する
DataGridView上にデータベースから取得したデータとチェックボックスを表示させたい場合、 バインドするDataTableにチェックボックス列を追加することで表示できる。
Dim objDataTable As DataTable Dim objCol As DataColumn ' チェックボックス列を作成 objColumn = New DataColumn("Checkbox",GetType(Boolean)) ' DataTableにチェックボックス列を追加 objDataTable.Columns.Add(objColumn) 'データソースにDataTableをセット objDataGridView.DataSource = objDataTable ' DataGridView再描画 objDataGridView.Refresh()
DataTableにチェックボックスのDataColumnを追加しただけだと、 DataTable上に存在するデータ列に追加されるかたちで配置される。
DataTableのイメージ
ColumnA | ColumnB | Checkbox |
---|---|---|
100 | 2017 | □ |
101 | 2016 | □ |
チェックボックス列の表示位置を変更したい場合はDataColumn.SetOrdinalを使用する。
' 引数は左端から0 objColumn.SetOrdinal(0)
SetOrdinalで列を変更した場合のDataTableのイメージ
Checkbox | ColumnA | ColumnB |
---|---|---|
□ | 100 | 2017 |
□ | 101 | 2016 |
セルを読み取り専用にする場合はDataGridViewのReadOnlyプロパティをTrueに変更する。 ただし、DataGridViewのReadOnlyプロパティを変更すると、DataGridView上のセルすべてに適用されるため、 チェックボックスの変更のみを有効にしたい場合は、 DataGridViewをRefreshする前に個別にプロパティを変更する。
' 左端列がチェックボックスの場合 For i As Integer = 1 To objDataGridView.ColumnCount - 1 objDataGridView.Columns(i).ReadOnly = True Next
実戦で役立つ C#プログラミングのイディオム/定石&パターン
- 作者: 出井秀行
- 出版社/メーカー: 技術評論社
- 発売日: 2017/02/18
- メディア: 大型本
- この商品を含むブログ (1件) を見る