トップ回答者
右クリック→メニュー表示→イベントはどうやって飛ぶのですか?

質問
-
まいどお世話になっております。
現在ContextMenuStripを使って、右クリックした時に、メニューを表示しております(ソースは下記)。
そのメニューをクリックした時にイベントに飛びたいのですが、
探しても分りません。
有識者の方、ご享受頂ければ幸いです。
宜しくお願いします。
--以下ソース--
Dim itsCMS As New ContextMenuStripitsCMS.Items.Add("MOVE")
itsCMS.Items.Add("図面")dgv_ResultList(フォームのオブジェクト名です).ContextMenuStrip = itsCMS
回答
-
yuji_amk さん、こんにちは
ダッチです。
yuji_amk さんからの引用 そのメニューをクリックした時にイベントに飛びたいのですが
コントロールをクリックした時のイベントは Click イベントになります。
ToolStripMenuItem クラスを動的に作成しているようですので、
動的にイベントを関連付ける必要があります。イベントの動的に関連付けは Addhandlerステートメントを使用します。
Code SnippetPrivate Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim move As New ToolStripMenuItem("MOVE")
AddHandler move.Click, AddressOf moveToolStripMenuItem_Click
Me.ContextMenuStrip1.Items.Add(move)
Dim 図面 As New ToolStripMenuItem("図面")
AddHandler 図面.Click, AddressOf 図面ToolStripMenuItem_Click
Me.ContextMenuStrip1.Items.Add(図面)
End Sub
Private Sub moveToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Console.WriteLine("moveToolStripMenuItem_Click")
End Sub
Private Sub 図面ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Console.WriteLine("図面ToolStripMenuItem_Click")
End Sub特に理由が無ければ、このようなことをしなくても
デザイナ画面から "MOVE" と "図面" メニューを作成しておき、
イベントをデザイナ画面から関連付けたほうが楽だと思います。
すべての返信
-
yuji_amk さん、こんにちは
ダッチです。
yuji_amk さんからの引用 そのメニューをクリックした時にイベントに飛びたいのですが
コントロールをクリックした時のイベントは Click イベントになります。
ToolStripMenuItem クラスを動的に作成しているようですので、
動的にイベントを関連付ける必要があります。イベントの動的に関連付けは Addhandlerステートメントを使用します。
Code SnippetPrivate Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Dim move As New ToolStripMenuItem("MOVE")
AddHandler move.Click, AddressOf moveToolStripMenuItem_Click
Me.ContextMenuStrip1.Items.Add(move)
Dim 図面 As New ToolStripMenuItem("図面")
AddHandler 図面.Click, AddressOf 図面ToolStripMenuItem_Click
Me.ContextMenuStrip1.Items.Add(図面)
End Sub
Private Sub moveToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Console.WriteLine("moveToolStripMenuItem_Click")
End Sub
Private Sub 図面ToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
Console.WriteLine("図面ToolStripMenuItem_Click")
End Sub特に理由が無ければ、このようなことをしなくても
デザイナ画面から "MOVE" と "図面" メニューを作成しておき、
イベントをデザイナ画面から関連付けたほうが楽だと思います。