C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


■93220 / )  Re[2]: DataGridViewのCellDoubleClick
□投稿者/ Rider (2回)-(2019/11/28(Thu) 14:48:19)
No93217 (大谷刑部 さん) に返信
> ■No93213 (Rider さん) に返信
>>どうせならTimerを使わずに、CurrentCellChangedとCellDoubleClickの
>>両イベントを両立させたいのですが、何か良い方法はないでしょうか?
> 両立?って具体的に何をさせたいのですか?
> どの状態のCellDoubleClickでもCurrentCellChangedで発生させている処理を発生させたいということですか?

いいえ、全然違います。
カレントセルが変わった時はCurrentCellChangedイベントを、
セルのダブルクリックを行った場合はCellDoubleClickイベントを実行して欲しいのです。
セルのダブルクリックを行ったとき、カレントセルが変われば
CellDoubleClickイベントとCurrentCellChangedイベントの両方を実行して欲しいのですが、
セルのダブルクリックを行ったとき、カレントセルが変わってなければCurrentCellChangedイベントは実行して欲しくないし、
セルのダブルクリックを行わずにカレントセルが変割った場合はCellDoubleClickイベントは実行して欲しくないのです。

簡単な例として、CurrentCellChangedイベントでMsgBox("CurrentCellChangedイベント")を実行するようにして、
CellDoubleClickイベントでMsgBox("CellDoubleClickイベント")を実行するようにします。
カレントセルをダブルクリックすると、MsgBox("CellDoubleClickイベント")が実行されます。(これは期待通り)
また、カレントセル以外のセルを選択すると、MsgBox("CurrentCellChangedイベント")が実行されます。(これも期待通り)
ただし、カレントセル以外のセルをダブルクリックすると、MsgBox("CurrentCellChangedイベント")は実行されますが、
MsgBox("CellDoubleClickイベント")は実行されません。
こちらの希望としては、このケースではMsgBox("CurrentCellChangedイベント")とMsgBox("CellDoubleClickイベント")の両方を実行して欲しいのです。

CurrentCellChangedイベントで実行する内容を、タイマーを使用して遅延させるとうまくいくのは、
おそらくCurrentCellChangedで行う処理により、CellDoubleClickイベントのメッセージを受け取れていないのだと思いますが、
そこのところがよく分かっていないので質問しました。
返信 編集キー/


管理者用

- Child Tree -