В свое время сделал на форме toolbar, по нажатию кнопок открываются форм и т.п...
выглядит примерно так:
- Код: Выделить всё
Private Sub tlbMainWindow_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles tlbMainWindow.ButtonClick
Select Case e.Button.Text
Case "Работа"
If tlbMainWindow.Buttons.Item(1).Pushed = True Then
frmWork = New frmWorkClass
frmWork.MdiParent = Me
frmWork.Show()
Else
e.Button.Pushed = True
frmWork.Activate()
frmWork.WindowState = FormWindowState.Normal
End If
Case "ГИП"
If tlbMainWindow.Buttons.Item(2).Pushed = True Then
frmGip = New frmGipEditClass
frmGip.MdiParent = Me
frmGip.Height = 230
frmGip.Show()
Else
e.Button.Pushed = True
frmGip.Activate()
frmGip.WindowState = FormWindowState.Normal
End If
Case Else
End Select
End Sub
Теперь мысль пришла добавить на форму MenuStripe,
показалось логичным прописать там все команды, типа кто хочет пользуется кнопками, кто менюшками, кто всем сразу...
КАК сделать так, чтобы по menuitem.click исполнялся код
"подвешанный" на кнопку тулбара?
/нет, скоприровать код заново во все события менюшки
мне не в лом... но всеж-таки хотелось бы как-нить "по уму"/
сочинил что-то вроде:
- Код: Выделить всё
Private Sub mnuItemGipList_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles mnuItemGipList.Click
Dim test As ToolBarButtonClickEventArgs
test = New ToolBarButtonClickEventArgs(Me.tlbMainWindow.Buttons.Item(2))
Me.tlbMainWindow.Buttons.Item(2).Pushed = True
Me.tlbMainWindow_ButtonClick(Me.tlbMainWindow, test)
End Sub
срабатывает, но не удачно,
например, в коде кнопки тулбара предусмотрено /хоть и коряво, по состоянию нажимаемой кнопки/,
что если такое окно уже существует, то просто поднять его,
а не создавать 2-й экземпляр...
нажатие же команды меню приводит к созданию ноых и новых окон...
СУММИРУЯ весь "плач Ярославны":
КАК СДЕЛАТЬ ТАК, чтобы 2 раза не переписывать код,
а командами меню можно было бы продублировать нажатие кнопок тулбара?
С надеждой уповаю,