【C#】データグリッドビュー上で右クリックしたときに位置に応じてコンテキストメニューの中身を変更したい

B!
DataGridView上でクリックした位置によってコンテキストメニューの内容を変えたいと思ったのだがあまりうまくいかない。

色々試した結果
データグリッドビュー側のCellMouseClickなどのクリックイベントはコンテキストメニューのイベントがある状態だと右クリックしても呼ばれないことがわかった。
つまりコンテキストメニューの表示しか呼ばれない。

そこで、コンテキストメニューを関連付けずにCellMouseClickから表示を行うことにした。



このCellMouseClickイベントではどの行にカーソルがあるのかを取得して、その内容によって中身を変えている。 そして、コンテキストメニューのItemsメンバで表示テキストを変更している。

後は表示するだけなので、Showメソッドを呼べばいいのだが、ただ呼ぶだけでは表示される位置が画面の左上になってしまいとてもおかしくなる。
そこで、TopとLeftをクリック位置で移動させればよい。
ちなみに、Showの前で移動させてもShowで一度原点に戻ってしまうようである。

関連記事
B!

Comment

非公開コメント

プロフィール

Author:ががんぼ
素人の製作日記です。
連絡はこちらからお願いします。
サイトマップ
このサイトについて

Twitter

ツール
スポンサード・リンク
最新記事
カテゴリ
人気記事
最新コメント
最新トラックバック
検索フォーム
RSSリンクの表示
リンク
アクセスランキング
関連記事

Related Posts Plugin for WordPress, Blogger...