- - PR -
_Popupイベント発生時にどのメニューが選択されたか判断する方法
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2008-03-28 10:59
いつもお世話になっております。
大変初歩的な質問かもしれません。よろしくお願いいたします。 ・VB.NET(2003)※古いバージョンですみません ・フォームにコンテキストメニュー(System.Windows.Forms.ContextMenu)貼り付け ・フォームロード時にメニューを1つ追加 という環境です。 コンテキストメニュークリック時(ContextMenu_Popupイベント)に「どの」メニューが クリックされたか判断することは可能ですか? 画面からメニューを追加後にダブルクリックすると 「MenuItem1_Click(Byval sender ・・・(略)」イベントがソース上に追加されますが 上記イベントで記述ができれば、ソースのみで処理を管理できると思ったためです。 よろしくお願いいたします。 お詫び これまでご回答いただいた質問にきちんとお礼をつけず終わってしまっています。 大変申し訳ありませんでした。 | ||||
|
投稿日時: 2008-03-28 11:44
senderにはイベント発生元という意味があるんだけどここには入らないんだっけか?
| ||||
|
投稿日時: 2008-03-28 12:04
ご連絡ありがとうございます。
sender にはSystem.Windows.Forms.ContextMenu の情報が入っています。 それらしいかと思った場所もありますが (ContextMenu.MenuItems や その下の .Item) 「.Selected」などのプロパティは付いていませんでした。 またはこれらの情報を別の型に変換するなどで「選択されているか」の情報が 取得できるのでしょうか? よろしくお願いいたします。 | ||||
|
投稿日時: 2008-03-28 12:23
ContextMenu_Popupイベントの時点ではメニューの項目は選択されていないので、判断することもできません。 各MenuItemに対するClickイベントを同じMenuItem_Clickメソッドで処理するようにしてあげることで、お望みに近いことができるのではないかと思います。 | ||||
|
投稿日時: 2008-03-28 13:36
rain さん
_popupイベントではメニューが「選択されていない」のですね。 ありがとうございます。
すみません。 追加したメニューアイテムが、メニュー以下にコレクションで格納されて、任意の メニューイベント内で、引数による選択項目の判断ができると思っていました。 追加メニューそれぞれのイベントを書かないといけないのですね。 ありがとうございました。 これからもよろしくお願いいたします。 [ メッセージ編集済み 編集者: Marie 編集日時 2008-03-28 13:43 ] |
1