DOBON.NET DOBON.NETプログラミング掲示板過去ログ

DataGridViewのCellContentClickイベント

環境/言語:[C#2005]
分類:[.NET]

DataGridViewのCellContentClickイベントとListViewのItem_Activateイベントの組み合わせで問題が発生しております。
以下の手順で再現できます。

以下の2つのフォームを用意

フォームA
○DataGridView
・ボタン列を設定
→CellContentClickイベントでフォームBをShowDialog()で開く

フォームB
○ListView
・Viewプロパティ = Details
・適当な行を用意しておく
・Item_Activateイベントを設ける
→行のダブルクリック(Item_Activateイベント)でDialogResult.OKとし、フォームBが閉じるようにしている

1.フォームAのDataGridViewのボタンをクリックし、フォームBを開く
2.フォームBのListViewをダブルクリックし、フォームを閉じる
(フォームBを閉じた時に、マウスポインタが1.でクリックしたボタンの位置になるようにフォームを閉じる)
3.フォームBが再度開かれてしまう


上記の手順で行いますと、フォームBを閉じた後にフォームAのDataGridViewのCellContentClickイベントがどういうわけか再度発生してしまいます。

何か回避策はありませんでしょうか?

ご教授お願いします。
フォームBのListViewのイベントですが、ItemActivateではなくMouseDoubleClickを使ってはどうでしょう。
ItemActivateでの処理に加え、SelectedItems.Countが1であることを確認します。
ItemActivateイベントを使用する理由として、行をダブルクリックで確定する以外にEnterキーで確定が行えるためItemActivateイベントを使用しています。

別サイトで同質問を投稿しましたところ、CellClickイベントで代用するという結論になりました。セルサイズ = ボタンサイズの仕様なので現状これで問題はありません。
※セルサイズ<>ボタンサイズですと、違和感が生じると思います。

ですので、とりあえず解決とさせていただきます。

ありがとうございました。
解決済み!
別のサイトに同じ質問を投稿されたということですが、これはマルチポストであり、この掲示板では禁止されています。詳しくは、「書き込みのルールについて」をご覧ください。

http://dobon.net/vb/bbs/index.html

マルチポストした投稿のあるURLを教えていただけますか?よろしくお願いいたします。
解決済み!
■No28017に返信(管理人さんの記事)
> 別のサイトに同じ質問を投稿されたということですが、これはマルチポストであり、この掲示板では禁止されています。詳しくは、「書き込みのルールについて」をご覧ください。
>
> http://dobon.net/vb/bbs/index.html
>
> マルチポストした投稿のあるURLを教えていただけますか?よろしくお願いいたします。

ここですかねー
http://www.ailight.jp/BBSDetail/Index/5d321d34-5226-485b-a9fd-f03c6497b623

DOBON.NET | プログラミング道 | プログラミング掲示板