Как правильно обработать события в ToolBar на VB.NET
Релиб
Форумы       Участники    Календарь    Кто он-лайн?
Добро пожаловать, гость ( Вход | Регистрация )
        



Как правильно обработать события в ToolBar на... Expand / Collapse
Автор
Сообщение
19.01.2004 12:03
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 05.02.2007 6:22
Сообщ.: 329, Visits: 3 602
В учебнике написано так:

Private Sub ToolBar1_ButtonClick(ByVal sender As System.Object, _
ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) _
Handles ToolBar1.ButtonClick
If e.Button = ToolBarButton1 Then
.......
ElseIf e.Button = ToolBarButton2 Then
.......
End If
End Sub

но на такие строки транслятор ругается
Operator '=' is not defined for types 'System.Windows.Forms.ToolBarButton' and 'System.Windows.Forms.ToolBarButton'. Use 'Is' operator to compare two reference types.

Как же правильно это делается?
Сообщ. #807188
19.01.2004 13:40
Forum Member

Forum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum MemberForum Member

участник
Last Login: 14.11.2004 19:01
Сообщ.: 25, Visits: 276
Protected Sub ToolBar1_ButtonClick(ByVal sender As Object, _
ByVal e As ToolBarButtonClickEventArgs)
' Evaluate the Button property of the ToolBarButtonClickEventArgs
' to determine which button was clicked.
Select Case ToolBar1.Buttons.IndexOf(e.Button)
Case 0
MessageBox.Show("First toolbar button clicked")
Case 1
MessageBox.Show("Second toolbar button clicked")
Case 2
MessageBox.Show("Third toolbar button clicked")
End Select
End Sub
Сообщ. #807199
20.01.2004 6:06
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 05.02.2007 6:22
Сообщ.: 329, Visits: 3 602
Да действительно работает.
Но по моему есть один недостаток.
Кнопки нельзя менять местами.
Можно ли как то обращаться к именам кнопок?
Сообщ. #807286
21.01.2004 21:21
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 12.04.2005 16:02
Сообщ.: 8, Visits: 89
Я, например, попробовал во так:
...
Select Case ToolBar1.Buttons.IndexOf(e.Button)
Case ToolBar1.Buttons.IndexOf(ToolBarButton1)
MessageBox.Show("1")
Case ToolBar1.Buttons.IndexOf(ToolBarButton2)
MessageBox.Show("2")
Case ToolBar1.Buttons.IndexOf(ToolBarButton3)
MessageBox.Show("3")
End Select
...

Наверно есть способ и проще :)
С уважением, Алексей.
Сообщ. #807508
22.01.2004 6:10
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 05.02.2007 6:22
Сообщ.: 329, Visits: 3 602
Алексею...
Чем Ваш пример отличается от выше приведенного?
Я нашел способ, который обрабатывает кнопки, даже если их переставишь местами.
Для этого надо в каждой кнопке прописать TEG
А далее делаем так:

Private Sub MainToolBar_ButtonClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolBarButtonClickEventArgs) Handles MainToolBar.ButtonClick

If e.Button.Tag = "ИмяТэга1" Then
........
elseif e.Button.Tag = "ИмяТэга2" Then
..........
End If

End Sub

Мне показалось так будет лучше...
Есть другие мнения?
Сообщ. #807538
22.01.2004 13:38
новичок

новичокновичокновичокновичокновичокновичокновичокновичок

участник
Last Login: 12.04.2005 16:02
Сообщ.: 8, Visits: 89
Олегу...
Вы написали:
"Но по моему есть один недостаток.
Кнопки нельзя менять местами.
Можно ли как то обращаться к именам кнопок?"

В моем примере вы обращаетесь к именам кнопок, хоть возможно и не самым красивым способоб. Вы осуществляете Case не по значениям индексов. Но вам решать.
Сообщ. #807579
29.01.2004 15:12
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 15.10.2002 16:50
Сообщ.: 270, Visits: 2 971
If e.Button is ToolBarButton1

Компилятор вроде этого поросил
Сообщ. #808396
30.01.2004 5:48
Supreme Being

Supreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme BeingSupreme Being

участник
Last Login: 05.02.2007 6:22
Сообщ.: 329, Visits: 3 602
На такую строку компилятор ругается...
Сообщ. #808465
30.01.2004 15:26
Supreme Being

Supreme Being