- - PR -
ContextMenuからMenuItem.Clickイベントがおきない
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-01-09 20:14
お世話になっています。
------------------------------------------------------- [OS]Windows2000 Professional SP4 [VS]VisualStudio.NET2003 [言語]VB.NET ------------------------------------------------------- 現在、MSFlexGrid上の右クリックでコンテキストメニューを表示し、 表示メニューのアイテムをクリックすると、 選択に応じた処理を行うようなことをやろうとしています。 (コードは下記参照) MSFlexGrid上の右クリックでコンテキストメニューを表示することはできるのですが、 表示メニューをクリックしても、MenuItemのClickイベントが走らなくて困っています。 ContextMenu1のアイテムとしてMenuItem1が定義してあり、 名称も間違っていないことも確認しました。 イベントハンドラが抜けていないことも確認しました。 初歩的なミスをしそうなところは一通りチェックしたつもりです。 ごく単純な処理なので質問するのも恥ずかしいのですが、 調べても原因がどうしてもわかりませんでした。 原因のわかる方がいましたら、ご教授ください。 よろしくお願いします。 ########################################################################### 'MSFlexGrid上の右クリックでメニューを表示 Private Sub mfgGrid_MouseDownEvent( _ ByVal sender As Object, _ ByVal e As AxMSFlexGridLib.DMSFlexGridEvents_MouseDownEvent _ ) Handles mfgGrid.MouseDownEvent With mfgGrid If .Rows <= 0 Then Exit Try '右クリック If e.button = 2 Then .Row = .MouseRow .Col = .MouseCol 'コンテキストメニュー表示 '出力位置がおかしいので調整 Me.ContextMenu1.Show(mfgGrid, _ New Point(.MousePosition.X - 150, .MousePosition.Y - 275)) End If End With End Sub 'コンテキストメニューのMenuItem1選択時の処理 Private Sub MenuItem1_Click( _ ByVal sender As Object, _ ByVal e As System.EventArgs _ ) Handles MenuItem1.Click Try 'MenuItem1の処理 Catch ex As Exception Debug.Write("Error: " & ex.Message) End Try End Sub ########################################################################### | ||||
|
投稿日時: 2005-01-09 21:09
諸農です。
MenuItem.ClickイベントにMenuItem1_Clickメソッドが セットされているかどうかの確認は出来ますか? また、この現象はMSFlexGrid上だけで発生するものでしょうか? それとも同じプロジェクトでフォームやその他のコントロール上で 同じコンテキストメニューを表示させても発生しますか? MSFlexGridを使わない単純な別のプロジェクトで試してみても 同様のことは発生しますか? _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2005-01-10 00:32
回答が遅れて申し訳ありません。
早速のご返信有難うございます。 >MenuItem.ClickイベントにMenuItem1_Clickメソッドが >セットされているかどうかの確認は出来ますか? 確認の仕方が間違っているかもしれませんが、 コード表示時のWindow上部にある左右のドロップダウンリストで 左のドロップダウンでMenuItem1を選択した状態で、 右のドロップダウンでClickイベントのところみるとClickイベントが 太字になっており、そこを選択するとMenuItem1_Clickメソッドへ 飛びますので問題ないと思います。 もし確認の仕方が間違っていましたらご指摘ください。 >また、この現象はMSFlexGrid上だけで発生するものでしょうか? >それとも同じプロジェクトでフォームやその他のコントロール上で >同じコンテキストメニューを表示させても発生しますか? > >MSFlexGridを使わない単純な別のプロジェクトで試してみても >同様のことは発生しますか? 同様の処理をDataGridで行っているところがありますが、 そこでは問題なくイベントが起きています。(同一プロジェクトで) 他のプロジェクトを作成して確認をしてはいませんので、 その確認をしてみます。 また、何かありましたらご指摘ください。 よろしくお願いします。 | ||||
|
投稿日時: 2005-01-10 02:30
諸農です。
再現できました。
ContextMenu.Show()に引き渡す所属コントロールをフォームにすると大丈夫のようです。 _________________ 諸農和岳 Powered by Turbo Delphi & Microsoft Visual Studio 2005 十兵衛@わんくま同盟 http://blogs.wankuma.com/jubei/ | ||||
|
投稿日時: 2005-01-10 14:41
Jubeiさんのコードの通り、所属コントロールをフォームにしてみると
Clickイベントが起こるようになりました。 本当に助かりました。有難うございました。 |
1