MenuStrip

Язык Visual Basic на платформе .NET.

Модераторы: Ramzes, Sebas

1Steps
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 505
Зарегистрирован: 20.12.2006 (Ср) 0:50
Откуда: New York

MenuStrip

Сообщение 1Steps » 10.07.2007 (Вт) 3:41

Здравствуйте Все!
Проблемма в следующем.
Меняю айтем в листбокс и заодно в менюстрип.
После изменения DropDownItems в менюстрип, клик по этим айтемам перестаёт работать( в листбокс всё нормально). Я думаю, нужно сделать эдхандлер, но не знаю как. А точнее пробовал, но почему-то не получается.
Помогите плиз.

MDI приложение. В дочерней форме:

Код: Выделить всё
    Private Sub ListBox2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged

        Select Case ListBox2.SelectedItem.ToString
            Case Is = "Filter 1"
                'Do something
            Case Is = "Filter 2"
                'Do something
            Case Is = "Fiter 3"
                'Do something
            Case Is = "Filter 4"
                'Do something
        End Select

        For i As Byte = 0 To 3

            'Удаляю фильтр который был использован

            If ItemFilters(i) = Me.ListBox2.SelectedItem.ToString _

            Then ItemFilters(i) = ""
        Next

        'Записываю Items заново
        Fill_Filters()

    End Sub

    Private Sub Fill_Filters()

        Me.ListBox2.Items.Clear()

        frmMDI.FiltersMenu.DropDownItems.Clear()

        If arrSystemOptimize Is Nothing Then
            ItemFilters(0) = "Filter 1"
            ItemFilters(1) = "Filter 2"
            ItemFilters(2) = "Filter 3"
            ItemFilters(3) = "Filter 4"
        End If

        For i As Byte = 0 To 3

            If ItemFilters(i) = "" Then Continue For

            Me.ListBox2.Items.Add(ItemFilters(i))

            frmMDI.FiltersMenu.DropDownItems.Add(ItemFilters(i))

            'Я Думаю, Здесь должен быть Эдхандлер

        Next

    End Sub
End Class
Удалена за ненадобностью.

Nord777
Гуру
Гуру
Аватара пользователя
 
Сообщения: 1144
Зарегистрирован: 22.02.2004 (Вс) 13:15
Откуда: Подольск

Сообщение Nord777 » 10.07.2007 (Вт) 12:32

Код: Выделить всё
frmMDI.FiltersMenu.DropDownItems.Add(ItemFilters(i), Nothing, _
New EventHandler(AddressOf ListBox2_SelectedIndexChanged))


Код: Выделить всё
    Private Sub ListBox2_SelectedIndexChanged _
(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles ListBox2.SelectedIndexChanged
        Dim S As String = ""

        If sender.GetType Is GetType(ListBox) Then
            S = CType(sender, ListBox).SelectedItem.ToString
        ElseIf sender.GetType Is GetType(ToolStripMenuItem) Then
            S = CType(sender, ToolStripMenuItem).Text
        Else : Exit Sub
        End If

        Select Case S
            Case Is = "Filter 1"
                MsgBox("Filter 1")
            Case Is = "Filter 2"
                MsgBox("Filter 2")
            Case Is = "Fiter 3"
                MsgBox("Filter 3")
            Case Is = "Filter 4"
                MsgBox("Filter 4")
        End Select
    End Sub
Microsoft Visual Studio 2008
Microsoft .NET Framework 3.5

1Steps
Постоялец
Постоялец
Аватара пользователя
 
Сообщения: 505
Зарегистрирован: 20.12.2006 (Ср) 0:50
Откуда: New York

Сообщение 1Steps » 11.07.2007 (Ср) 4:50

Спасибо Заработало!
Удалена за ненадобностью.


Вернуться в Visual Basic .NET

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 73

    TopList