- - PR -
datagridviewの列ヘッダのコンテキストメニュー
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-02-15 13:57
列ヘッダで右クリックしてコンテキストメニューを表示し
削除できるようにしたいと思っているのですが private void dataGridView_ColumnHeaderMouseClick(object sender, DataGridViewCellMouseEventArgs e) { if (e.Button == MouseButtons.Right) { ContextMenu cntmenu = new ContextMenu(); cntmenu.MenuItems.Add("削除",new EventHandler(gyosakujo)); cntmenu.Show(dataGridView,e.Location); } } このようなコードを書いたところ 右クリックするとコンテキストメニューがなぜか どの列をクリックしても 一番左端の列のヘッダ部分に表示されます。 どうしたら改善できますでしょうか? ご存知の方教えていただけるとうれしいです。 | ||||||||
|
投稿日時: 2007-02-15 14:19
これは、
'dataGridView' が基準になっているからではないでしょうか。 _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||||||
|
投稿日時: 2007-02-15 14:49
「右クリック」という観点ではなく「メニューを表示する必要があるとき」という
風に考えてみるといいと思います。 そうすると、DataGridView には CellContextMenuStripNeeded と いうイベントがあるので、その中で表示するコンテキストメニューを指定して やれば後は自動的にヨロシクやってくれると思います。
こんな感じで。 _________________ ぽぴ王子@わんくま同盟 ぽぴ王子の人生プログラミング中 / ぽぴンち。 | ||||||||
|
投稿日時: 2007-02-16 17:22
ありがとうございます。
色々とためさせていただきます。 | ||||||||
|
投稿日時: 2007-02-19 14:06
ぽぴ王子さんの教えていただいた方法を試させていただきました。
そうすると、セルの中で右クリックすると 毎度おなじみの、コピーやら、切り取り、削除などが 表示されますね。 あと、それの副産物といいますかなんといいますか セルの上にマウスを持っていくとセルの内容が バルーン表示されるようになりました。 なんだか、コンテキストメニューと、バルーン表示って 兄弟?な感じの関係なのでしょうか? |
1