• ベストアンサー

VB2005 DataGridView内のチェックボックス

aiai0223の回答

  • ベストアンサー
  • aiai0223
  • ベストアンサー率50% (1/2)
回答No.1

動作確認はしておりませんが・・・ CellValueChangedイベントを発生させて、その中でCurrentCellがチェックボックスのセルか判断させればどうでしょうか?

onilichan
質問者

お礼

なんとか解決できました。ありがとうございます。 ちなみに、チェックボックスにチェックを入れたときに、チェンジイベントが発生できなかった問題は、チェックボックスにチェックが入った時に、CurrentCellDirtyStateChangedをつかって、コミットすることで、可能になりました。

関連するQ&A

  • DataGridViewのチェックボックス

    現在DataGridViewのチェックボックスの状態で難儀しております。 DataGridViewのチェックボックス操作に、 CurrentCellDirtyStateChangedで未コミット分の判定を行い、 コミットしてからCellValueChangedで値をとる一般的な手法を用いております。 チェックボックスを単純にTrue/Falseして入力制御したりする分にはこれで問題ないです。 しかしながら、Falseした際に、他の入力セルが変更されていた場合に、 「変更内容が消えるがよろしいか?」といった内容のダイアログを出し、 場合によってはチェックボックスの値を元に戻すということを実現したいと思います。 そこでダイアログで「いいえ」を選択された場合に、 チェックボックスのValueをTrueに戻し、 発生したイベントは別に持たせたフラグでスルーするようにしましたが、 Valueは確かにTrueなのですが、表示上がFalseのままであり、 タブ移動して初めて表示上が変わる状態になってしまっています。 そこでグリッドの表面上のリフレッシュ等が必要かと思いましたが、 方法が思い浮かばず途方に暮れています。 どなたか知恵をお貸しください。

  • VB2005 DataGridviewのチェックボックス制御について

    DataGridviewのチェックボックス列の個々のチェックボックスについて、 Enabledプロパティのような値を設定して、 使用可/不可を制御したいのですが、方法がわかりません。 教えていただけないでしょうか? 最初、DataGridViewCheckBoxCellのVisibleプロパティが 参照/設定できるとヘルプに書いてあったので、 ひとまずこれで代用しようと思ったのですが、 コードを打ち込んだら「参照のみ」といわれ、 仕方なく今はReadOnlyプロパティを使っています。 よろしくお願いいたします。

  • DataGridViewのチェックボックスのON、OFFの判定方法

    お世話になります。ご協力お願いします。 環境:VS2008 .Net FrameWork3.5 言語:C# 質問内容:ボタンを押下したら、DataGridViewの列に設定したチェックボックスのON,OFFを判定して処理を行いたい。 現状以下の方法で実現は出来ていますが、とても回りくどい方法になっています。 正しい処理を教えて頂けないでしょうか。 1.DataGridViewにて、列にチェックボックスを設けている。 2.truevaluesプロパティにtrueをセットしている。 ボタンを押下したらチェックボックスのON、OFFを判定する為に、DataGridViewの行を ループさせて判定させています。 for(int i=0;i < DataGridView.Count;i++){ ___if((string)DataGridView.Rows[i].Columns[0].values == "true") ___{ ______処理 ___} } お願い致します。

  • VB2005EE:DataGridViewでチェックボックスを設けるには

    はじめまして DataGridView(VB2005EE)でチェックボックスを設ける方法を教えていただきたく質問させていただきました。 Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '3つの列を設定し,ABCという列名をつける DataGridView1.ColumnCount = 5 DataGridView1.Columns(0).HeaderText = "A" DataGridView1.Columns(1).HeaderText = "B" DataGridView1.Columns(2).HeaderText = "C" Dim myNewCell As New DataGridViewCheckBoxCell DataGridView1.Columns.Insert(3, New DataGridViewColumn(myNewCell)) DataGridView1.Columns.Item(3).HeaderText = "チェックボックス" DataGridView1.Columns.Item(3).Name = "識別名" DataGridView1.RowCount = 4 '最下行に管理用の行設置 End Sub End Class 手元の本を参考に上記のコードでコンパイルを行うと, >DataGridViewで釣りの例外が発生しました: >System.FormatException:セルのフォーマットされた値に間違った型が>指定されています。 >この既定のダイアログを置き換えるには,DataErrorイベントをハンド>ルしてください。 というエラーダイアログが発生します。 まだプログラミングを始めたばかりという事もあり,右も左もわかりませんが,ご教授お願い致します。

  • DataGridView上のチェックボックスが、TrueかFalseか

    DataGridView上のチェックボックスが、TrueかFalseか判定する際にエラーが出て困っています。 DataGridViewにチェックボックスのカラムを設定し、そのチェックボックスがTrueがFalseかを判断したいと思っています。 以下のコードではエラーになるのですが、何が原因でしょうか。 前提条件 ・環境:VS.NET(VB) ・DataGridView名:dgv ・チェックボックスのカラム名:cCheck For Each dgr As DataGridViewRow In dgv.Rows If CType(dgr.Cells("cCheck").Value, Boolean) Then '処理 End If Next デバッグをしていると、 上記の「 If CType(dgr.Cells("cCheck").Value, Boolean) Then」 でエラーが発生します。 エラー内容は「string型からBoolean型への変換は無効です。」です。 お分かりの方がおりましたら、ご回答頂ければ幸いでございます。 よろしくお願い致します。

  • エクセル VBA チェックボックスについて

    よろしくお願い致します。 OS:XP エクセル2003 VBAのことは、まったくの初心者です。 質問なのですが、下記のようなチェックボックス7にチェックが入れば、チェックボックス8~11に自由にチェックが入れれるようになり、逆にチャックボックス7にチェックが入ってない場合は、チェックボックス8~11のチェックはクリアされ、チェックできないものを作りました。 ここから、チェックボックス7にチェック入れたあとは、必ずチェックボックス9~11のどれかにチェックが入っている状態(ラジオボタンのような)で、チェックボックス7にチェックが入ってなかったら、8~11のチェックがクリアで尚且つ、チェックができなくなるようにするにはどうすればよいでしょうか? よろしくお願い致します。 Private Sub CheckBox7_Click() If CheckBox7.Value = True Then CheckBox8.Enabled = True CheckBox9.Enabled = True CheckBox10.Enabled = True CheckBox11.Enabled = True Else CheckBox8.Value = False CheckBox9.Value = False CheckBox10.Value = False CheckBox11.Value = False CheckBox8.Enabled = False CheckBox9.Enabled = False CheckBox10.Enabled = False CheckBox11.Enabled = False End If End Sub

  • VB2005 DataGridViewにチェックボックスを追加する方法

    タイトル通りなのですが VB2005でDataGridViewにチェックボックスを追加したいです。 ############################################################### Public Class Form1 Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load Dim chColumn As New DataGridViewCheckboxColmun DataGridView1.ColumnCount = 5 DataGridView1.Columns(0).HeaderText = "1" DataGridView1.Columns(1).HeaderText = "2" DataGridView1.Columns(2).HeaderText = "3" DataGridView1.Columns.Insert(4, chColumn) End Sub End Class ############################################################## Dim chColumn As New DataGridViewCheckboxColmun ↑で'型'DataGridViewCheckboxColmunが定義されていません となってしまいます。 どうすればよいでしょうか。。。。 プログラム初めて1週間の初心者なのでお手柔らかに よろしくお願いします。

  • datagridviewでドラッグ操作が出来ません

    VisualStudio2008での、C#の話です。 datagridviewにドラッグ処理でファイルを読み込ませたいのですが出来ません。 まずdatagridviewのプロパティでAllowDropの項目をtrueにしました。 そしてイベントハンドラでDrag&Dropの所に関連付けをして、 その後の指示でファイル名を取得するプログラムを書いたのですが、 ドラッグしてはいけないマークが出ていて そもそもDrag操作自体を受け付けてくれません。 イベント内にブレークポイントも設定してみたのですが、 やはり構文の中にすら入っていかないようです。 ちゃんとネット上のサイトの指示に従ったのですが… 原因が分からず困っています。 どなたか原因が分かる方、教えてください。

  • DataGridViewで再表示すると変更不可にならない

    Visual Basic 2008 にて開発していますがDataGridViewについて質問させて下さい。 DataGridViewのデータ表示は、検索結果をDataTableに格納し、 そのDataTableをDataSourceに設定する方法で行っています。 DataGridView内にはチェックボックスがあり、 そのチェックボックスは条件によってReadOnly = Trueにて変更不可にして表示しています。 最初の表示は問題なく条件に合えば ReadOnly = Trueにて変更不可になり表示してくれますが、 再表示(DataTableをDataSourceに再代入)すると条件に合っているのにReadOnly = Trueが効かず、 チェックボックスが変更可能となって表示してしまいます。 ReadOnly=True にする方法は、DataGridView の件数を取得し、 jjCnt = 0 Do Until jjCnt >= ggCnt   If DataGridView1.Rows(jjCnt).Cells(88).Value.ToString() = "1" Then DataGridView1.Rows(jjCnt).Cells(0).ReadOnly = True End If jjCnt = jjCnt + 1 Loop で行っています。 何故、再表示だと変更不可にならないのか解らずご教授願いたく宜しくお願い致します。

  • DataGridViewでの入力チェック

    DataGridViewで入力チェックを行いたいのですが、移動先のセルが移動元のセルよりも下の列あるいは右下の場合だけ入力チェックをしたいのですが、どうしたらよいでしょうか? CellValidatingイベント等では、移動元のセル情報は取得できるのですが、移動先のセル情報が取得できません。 根本的にこのようなチェック機能自体問題があるでしょうか?