• 締切済み

DataGridViewでMauseDown

VB.NETでDataGridViewでMauseDownイベントを実装するとCellContentClickイベントやCellClickイベントが発生しなくなりました。 VB.NETのバージョンは4.6.2です。 Panelコントロール上に配置したDataGridViewのCellContentClickイベント内でClickされたセルの列に応じた処理を行っています。 このDataGridViewにDrag&Dropの機能を設けるべく、MouseDownイベントを追加しました。 MouseDownイベント内に記述した処理の動作も問題無く、全体の動作確認を行っていると、DataGridViewのCellContentClickイベントが発生していない事に気がつきました。 CellContentClickイベント内の処理の1行目にブレークポイントを設置して確認しました。 試しにMouseDownイベント自体をコメントアウトするとCellContentClickイベント内の処理は実行されました。 MouseDownイベント、CellContentClickイベントの両方を動作させる方法はありますでしょうか?

みんなの回答

  • dell_OK
  • ベストアンサー率13% (776/5747)
回答No.2

もしかして、イベントハンドラが消えていませんか。  Private Sub DataGridView1_MouseDown(sender As Object, e As MouseEventArgs) Handles DataGridView1.MouseDown この「 Handles DataGridView1.MouseDown」です。 どのようにしてイベントを追加されたかわかりませんが、フォームデザイナのプロパティウィンドウからイベントを選択すると、上記のようなSubプロシージャが追加されると思います。 この「 Handles DataGridView1.MouseDown」は、フォームからこのコントロールを削除すると消えてしまい、Subプロシージャだけが残ります。 プロパティウィンドウのイベントも消えています。 もう一度コントロールを貼り付けても戻りません。 もし消えていたら、手で追加するか、改めてフォームデザイナからイベントを追加してできるこの部分をコピーしてください。 後者の場合、プロシージャ名に「_1」などが付加されたものが新たにできるので、それ自体は消してください。 コントロールを切り貼りしてもイベントハンドラが消えないようにするには、フォームのNewのところなどで、以下のようにして自分でイベントハンドラを設定する方法があります。  AddHandler DataGridView1.MouseDown, AddressOf DataGridView1_MouseDown

  • dell_OK
  • ベストアンサー率13% (776/5747)
回答No.1

イベント自体は両方とも動作するはずです。 MouseDownイベント自体ではなく、その内容だけをコメントにしたら、CellContentClickイベントのブレークポイントで止まると思います。 もしそうであれば、MouseDownイベント内で後続のイベントがキャンセルされるような何かをしているのではないでしょうか。 CellContentClickイベントはセル内の文字などがあるところでないと反応しないので、セル内の何もないところをクリックしているということはないですか。 と聞きつつも、それでもCellClickイベントの方は反応するはずなので、やはりMouseDownイベントの内容がどのようなものかになってくると思います。

scutotto
質問者

補足

>dell_OK 様 ご回答ありがとうございます。 >MouseDownイベント自体ではなく、その内容だけをコメント これもやってみたんですが、結果は同じでした。 もう少し説明しますと BaseForm にDataGridView が設置してあり、 それを継承したFormでの質問になります。 継承FormにはBaseFormに設置したDataGridView 以外に、新たに追加したDataGridView がありそのDataGridView でも同じ現象が発生します。 DataGridView を継承してコントロールを作成した場合、以下のような現象が発生する可能性があるのは検索できましたが、今回はコントロールの継承ではありません。 http://blog.syo-ko.com/?eid=2931&fbclid=IwAR0S3EO8Br-WziInWnhbXVwqRRsoMbJxls24ii18wVFtMUNznmVI1AJ1aK8

関連するQ&A