【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】構造化例外処理とは?

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

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