【VB.NET】DataGridViewコントロールでチェックボックスの状態を取得するには?

訪問して頂きありがとうございます。まさふくろーです。

この記事では、DataGridViewコントロールでチェックボックスの状態を取得する方法をご紹介します。

DataGridViewコントロールでチェックボックスの状態を取得する

  • DataGridViewコントロールで選択されている行の値を取得するには、DataGridViewRowオブジェクトのCurrentRowプロパティを使います。
  • 選択している行から、各セルの値を取得するには、DataGridViewCellオブジェクトのValueプロパティを使います。
  • DataGridViewCellオブジェクトは、DataGridViewRowオブジェクトのCellsプロパティから取得します。
  • チェックボックスにチェックが付いている場合は「True」、チェックが付いていない場合は「False」を返します。
  • 書式は、以下になります。

DataGridView.CurrentRow.Cells(列のインデックス).Value

  • DataGridViewコントロールに表示されているすべての行の値を取得するには、DataGridViewRowオブジェクトのRowsプロパティを使います。
  • 各セルの値を取得するには、DataGridViewCellオブジェクトのValueプロパティを使います。
  • DataGridViewCellオブジェクトは、DataGridViewRowオブジェクトのCellsプロパティから取得します。
  • チェックボックスにチェックが付いている場合は「True」、チェックが付いていない場合は「False」を返します。
  • 書式は、以下になります。

DataGridView.Rows(行番号).Cells(列のインデックス).Value

  • 列のインデックスは、DataGridViewコントロールの左から順番に「0、1、2・・・」と割り振られます。

サンプルプログラム(単一行)

DataGridViewに表示する処理

2 「注文データを表示」ボタンクリック時に以下処理を行う。
4~7 接続先データベースの情報を、変数に代入。
13 SqlConnectionクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
15~19 ConnectionStringプロパティにデータベース情報を設定。
21 データベースに接続。
23 SqlCommandクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
25 SQL文を実行するために、15~19行目で設定したデータベース情報と同じ情報をConnection プロパティに設定。
27~31
レコードを抽出するSQL文をCommandTextプロパティに設定。
30行目の「@」マークは、以下33~34行目で設定するパラメータを使用する際に記述します。
33 「SalesOrderHeader」テーブルの「SalesOrderID」列の開始番号に、値「71774」を設定する。
34 「SalesOrderHeader」テーブルの「SalesOrderID」列の終了番号に、値「71816」を設定する。
36 SQL文(SalesOrderID列の値が71774~71816までのレコードを抽出する)を実行し、実行結果をSqlDataReader型の変数「dread」に代入。
38 変数「dread」の値が「True」の間(抽出したレコード件数分)、以下処理を繰り返す。
43 「SalesOrderID」列の列番号を取得し、Integer型の変数「iIdx」に代入。
44 「SalesOrderID」列の値を取得し、String型の変数「SalesOrder_ID」に代入。
46 「OrderDate」列の列番号を取得し、Integer型の変数「iIdx」に代入。
47 「OrderDate」列の値を取得し、String型の変数「Order_Date」に代入。
49 「DueDate」列の列番号を取得し、Integer型の変数「iIdx」に代入。
50 「DueDate」列の値を取得し、String型の変数「Due_Date」に代入。
52 「SalesOrderNumber」列の列番号を取得し、Integer型の変数「iIdx」に代入。
53 「SalesOrderNumber」列の値を取得し、String型の変数「SalesOrder_Number」に代入。
55 DataGridViewコントロールにデータを表示する。(チェックボックスはチェックを付けないように「False」を設定)
61 DataGridViewコントロールの1列目(チェックボックス)の幅を50ピクセルにする。
63 処理が正常に終了したら、正常終了のメッセージをラベルに表示する。
67 処理の実行中にエラーが発生した場合、
69 エラー内容を取得し、ラベルに表示する。

DataGridViewのチェックボックスの状態を取得する処理

2 「DataGridViewのチェックボックスの状態を取得」ボタンクリック時に以下処理を行う。
8 DataGridViewの選択行の1列目(チェックボックス)の状態を取得し、Boolean型の変数「CheckStatus」に代入。
10 取得した値が「True」の場合、
12 文字列「チェックあり」をラベルに表示する。
14 取得した値が「False」の場合、
16 文字列「チェックなし」をラベルに表示する。
20 処理の実行中にエラーが発生した場合、
22 エラー内容を取得し、ラベルに表示する。

サンプルプログラム(複数行)

DataGridViewに表示する処理

2 「注文データを表示」ボタンクリック時に以下処理を行う。
4~7 接続先データベースの情報を、変数に代入。
13 SqlConnectionクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
15~19 ConnectionStringプロパティにデータベース情報を設定。
21 データベースに接続。
23 SqlCommandクラスのインスタンス化。(Usingステートメントでリソース開放を自動化)
25 SQL文を実行するために、15~19行目で設定したデータベース情報と同じ情報をConnection プロパティに設定。
27~31
レコードを抽出するSQL文をCommandTextプロパティに設定。
30行目の「@」マークは、以下33~34行目で設定するパラメータを使用する際に記述します。
33 「SalesOrderHeader」テーブルの「SalesOrderID」列の開始番号に、値「71774」を設定する。
34 「SalesOrderHeader」テーブルの「SalesOrderID」列の終了番号に、値「71816」を設定する。
36 SQL文(SalesOrderID列の値が71774~71816までのレコードを抽出する)を実行し、実行結果をSqlDataReader型の変数「dread」に代入。
38 変数「dread」の値が「True」の間(抽出したレコード件数分)、以下処理を繰り返す。
43 「SalesOrderID」列の列番号を取得し、Integer型の変数「iIdx」に代入。
44 「SalesOrderID」列の値を取得し、String型の変数「SalesOrder_ID」に代入。
46 「OrderDate」列の列番号を取得し、Integer型の変数「iIdx」に代入。
47 「OrderDate」列の値を取得し、String型の変数「Order_Date」に代入。
49 「DueDate」列の列番号を取得し、Integer型の変数「iIdx」に代入。
50 「DueDate」列の値を取得し、String型の変数「Due_Date」に代入。
52 「SalesOrderNumber」列の列番号を取得し、Integer型の変数「iIdx」に代入。
53 「SalesOrderNumber」列の値を取得し、String型の変数「SalesOrder_Number」に代入。
55 DataGridViewコントロールにデータを表示する。(チェックボックスはチェックを付けないように「False」を設定)
61 DataGridViewコントロールの1列目(チェックボックス)の幅を50ピクセルにする。
63 処理が正常に終了したら、正常終了のメッセージをラベルに表示する。
67 処理の実行中にエラーが発生した場合、
69 エラー内容を取得し、ラベルに表示する。

DataGridViewのチェックボックスの状態を取得する処理

2 「DataGridViewのチェックボックスの状態を取得」ボタンクリック時に以下処理を行う。
12 DataGridViewの行数を取得し、Integer型の変数「dgvRowCnt」に代入。
14 DataGridViewの行数分、以下処理を繰り返す。
16 チェックボックスの状態を取得し、Boolean型の変数「CheckStatus」に代入。
18 取得した値が「True」の場合、
20 DataGridViewの行数を、String型の変数「str」に追加していく。
26 処理が完了したら、チェックボックスにチェックが付いている行をラベルに表示する。
28 処理の実行中にエラーが発生した場合、
30 エラー内容を取得し、ラベルに表示する。

関連記事

DataGridViewコントロールにチェックボックスを表示する

【VB.NET】DataGridViewコントロールにチェックボックスを表示するには?

テーブルのデータを抽出する

【VB.NET】テーブルのレコードを抽出するには?

DataGridViewコントロールの列の幅を変更する

【VB.NET】DataGridViewコントロールの列の幅を変更するには?

DataGridViewコントロールの行数を取得する

【VB.NET】DataGridViewコントロールの行数を取得するには?

データベースに接続

【VB.NET】データベースに接続するには?

Usingステートメント

【VB.NET】UsingステートメントでDisposeメソッドの呼び出しを自動化する

構造化例外処理

【VB.NET】構造化例外処理とは?

最後まで読んでいただき、ありがとうございました!

本のまとめ関連記事はこちら