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