У меня есть несколько пунктов меню в моем проекте, которые открывают новые формы при нажатии и каждый раз, когда я нажимаю на один, я запускаю код ниже. Однако я должен добавить его для каждого события MenuItem_Click
, поэтому всякий раз, когда я меняю код, мне приходится копировать и проходить между формами. FormName
- единственное, что меняется. Все мои пункты меню названы в честь соответствующей формы, mi_FormName
. И я знаю, как сделать общий обработчик событий.Visual Studio - обработчик общего назначения
Есть ли способ заставить его захватить имя щелкнутого пункта меню, удалить mi_
и вставить его в те же места, что и FormName
?
Private Sub MenuItem_Click(sender As Object, e As EventArgs) Handles MenuItem.Click
Dim F As Form
If Not IsNothing(modForms.CheckOpen("FormName")) Then
F = modForms.CheckOpen("FormName")
If F.IsDisposed Then
modForms.CheckOpen.Remove("FormName")
F = New FormName
F.Show()
ElseIf F.Visible = False Then
F.Show()
Else
F.BringToFront()
End If
Else
F = New FormName
F.Show()
End If
End Sub
вы можете написать подпрограмму или функцию, что код и передать имя формы в качестве параметра. затем просто вызовите его из разных мест (разрешите аспекты NON GENERIC в событиях щелчка, затем вызовите общий код). вам может потребоваться передать тип (форму), который вы хотите создать, если он не будет всегда одинаковым. – Plutonix