Обработка события onclick элемента меню Contextmenu в форме окна - PullRequest
1 голос
/ 16 ноября 2011

У меня есть приложение Windows Form. Я добавил контекстное меню, которое появляется при щелчке правой кнопкой мыши по списку. Но почему-то я не смог разобраться, как отловить событие onClick для ContextMenu-Menu-Item. Также необходимо получить индекс элемента из списка, пока пользователь нажимает на элемент меню. Если я нажму левую кнопку мыши, я буду использовать lstCustomer.SelectedItems (0) .SubItems (2) .Text, но я не уверен, что это будет тот же случай или нет, когда пользователь щелкает правой кнопкой мыши по элементу и выбирает пункт меню из контекстного меню.

Dashboard.vb

Public Class Dashboard
  Private Sub Dashboard_Load(ByVal sender As System.Object, ByVal e As 
  System.EventArgs) Handles MyBase.Load
    LoadContextMenu()
End Sub


Private Sub LoadContextMenu()
    Dim contxMnu As New ContextMenu()
    Dim menuItem1 As New MenuItem()
    Dim menuItem2 As New MenuItem()

      contxMnu.MenuItems.AddRange(New MenuItem() {menuItem1, menuItem2})

      menuItem1.Index = 0
      menuItem1.Text = "Do Something 1"

      menuItem2.Index = 1
      menuItem2.Text = "Do Something 2"

      Me.ContextMenu = contxMnu
    End Sub

End Class

1 Ответ

3 голосов
/ 16 ноября 2011

Я не уверен, правильно ли я понимаю, что вы хотите получить. Если все дело в действии, которое обрабатывает событие Click, вы можете сделать что-то вроде этого:

Private Sub LoadContextMenu()
    Dim contxMnu As New ContextMenu()
    Dim menuItem1 As New MenuItem("Do Something 1", New EventHandler(AddressOf DoSomething1))
    Dim menuItem2 As New MenuItem("Do Something 2", New EventHandler(AddressOf DoSomething2))

    contxMnu.MenuItems.AddRange(New MenuItem() {menuItem1, menuItem2})

    Me.ContextMenu = contxMnu
End Sub

... и события:

Private Sub DoSomething1(sender As Object, e As EventArgs)
    ' do something 1 
End Sub


Private Sub DoSomething2(sender As Object, e As EventArgs)
    ' do something 2 
End Sub
...