• ベストアンサー

DataGridViewのチェックボックスについて

vb2005で開発をはじめたのですが、わからないことだらけで困っています。 よろしければどなたかご教授ください。 DataGridViewのセルにチェックボックスを配置し、ある権限の有無を管理したいのですが、チェックボックスが初期状態(チェックなし)のとき、内部ではNULLとして扱われてしまっていて、入力エラーとなってしまいます。 初期状態(チェックなし)をNULLでなく'0'という値を持たせたいのですが、何か方法があるのでしょうか? よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • ape5
  • ベストアンサー率57% (85/148)
回答No.1

入力エラーというのは、DBに登録するときでしょうか? もしそうであれば、DBに登録するときに、DataGridViewの行数でループをさせて、チェックボックスのところをFalseに設定してはどうでしょうか? たとえば以下のような感じで。 ------------------------------------------------------- Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click Dim i As Integer For i = 0 To DataGridView1.RowCount - 1 If DataGridView1.Rows(i).Cells(2).Value Is Nothing Or DataGridView1.Rows(i).Cells(2).Value Is DBNull.Value Then DataGridView1.Rows(i).Cells(2).Value = False End If Next End Sub -------------------------------------------------------

iimatsugai
質問者

お礼

ape5さん、ご回答ありがとうございました。 >入力エラーというのは、DBに登録するときでしょうか? そのタイミングです。Nullを設定しようとしているみたいです。 コードの記載ありがとうございます。 なるほどですね! 値に直接Falseを設定してあげるんですね。私は今まで無理やりCellValidatingイベントハンドラで何とかしようとしてましたが、それだとチェックボックスのセルに一度もフォーカスを当てないまま次の動作を行ってしまうと、どうしてもエラーが回避できません。 教えていただいた通りに一度試してみます。 ご教授ありがとうございました。

関連するQ&A

専門家に質問してみよう