Visual Basic несколько toolstripmenuitems, чтобы выполнить то же самое на клике

Я здесь новичок. Поэтому заранее прошу прощения, если не правильно формулируешь вопрос. Я разрабатываю приложение (VS2013, Visual Basic), которое использует несколько пунктов меню в MenuStrip. При нажатии на элемент вызывается идентичная функция - создается вкладка и загружается соответствующая форма. т.е.

Private Sub XXXMNU0039_Click(sender As Object, e As EventArgs) Handles XXXMNU0039.Click
    Dim f1 As New frm_B05_01_SalesQuotes
    Dim imgnm As String = "XXXMNU0039"
    Call XXXTabPages("Sales Quotes", f1, imgnm)
End Sub

Private Sub XXXMNU0040_Click(sender As Object, e As EventArgs) Handles XXXMNU0040.Click
    Dim f1 As New frm_B05_03_SalesQuotesReports
    Dim imgnm As String = "XXXMNU_Reports"
    Call XXXTabPages("Sales Quotes Reports", f1, imgnm)
End Sub

.... Мне интересно, есть ли способ создать "глобальное" значение по умолчанию "событие щелчка" для всех пунктов меню, которое по умолчанию будет выполнять то же самое. У меня есть вся необходимая информация для каждого пункта меню, хранящаяся в таблице, и я надеюсь избежать создания "по клику" для каждого пункта.

Заранее спасибо.

1 ответ

Решение

Вы можете иметь тот же обработчик для события click вашего ToolStripMenuItems,
Просто добавь, после первого Handles XXXMNU0039.Click событие для обработки для другого ToolStripMenuItem и так далее

Очевидно, что проблема состоит в том, как дифференцировать различные ToolStripMenuItem, которые вызывают один и тот же обработчик событий. Но в аргументах события есть объект Sender, который представляет текущий ToolStripMenuItem это вызвало событие.

Просто DirectCast для ToolStripMenuItem и прочитайте его имя, чтобы передать правильный параметр XXXTablPages метод

Private Sub menuItemHandler_Click(sender As Object, e As EventArgs) _
                  Handles XXXMNU0039.Click, XXXMNU0040.Click
    Dim f1 As New frm_B05_01_SalesQuotes
    Dim itm = DirectCast(sender, ToolStripMenuItem)
    Dim imgnm As String = item.Name
    Call XXXTabPages("Sales Quotes", f1, imgnm)
End Sub
Другие вопросы по тегам