Проблемы с получением PowerPoint Combobox для правильного отображения списка - PullRequest
3 голосов
/ 14 мая 2010

Я создаю PowerPoint, в котором я хочу, чтобы пользователи могли выбирать элемент из списка в поле со списком. После этого ничего не должно произойти, это просто предоставить запись на экране по своему выбору.

Моя проблема в том, что мне кажется, что я либо могу заполнить поле со списком, и пользователи могут выбрать элемент, но список становится длиннее при каждом нажатии на комбинированный список (т. Е. Каждый раз при нажатии на список дублируется). Или, в качестве альтернативы, я могу очистить поле со списком, а затем заполнить его, но в этом случае выбор пользователей также, кажется, очищается.

VBA пример 1:

Private Sub ComboBox1_DropButtonClick()
With ComboBox1
.AddItem " ", 0
.AddItem "speed", 1
.AddItem "provisionality", 2
.AddItem "automation", 3
.AddItem "replication", 4
.AddItem "communicability", 5
.AddItem "multi-modality", 6
.AddItem "non-linearity", 7
.AddItem "capacity", 8
.AddItem "interactivity", 9
End With
End Sub

VBA пример 2:

Private Sub ComboBox1_DropButtonClick()
ComboBox1.Clear
With ComboBox1
.AddItem " ", 0
.AddItem "speed", 1
.AddItem "provisionality", 2
.AddItem "automation", 3
.AddItem "replication", 4
.AddItem "communicability", 5
.AddItem "multi-modality", 6
.AddItem "non-linearity", 7
.AddItem "capacity", 8
.AddItem "interactivity", 9
End With
End Sub

Может кто-нибудь помочь?

1 Ответ

4 голосов
/ 14 мая 2010

Поскольку у вас есть код в событии DropButtonClick, каждый раз, когда вы щелкаете по раскрывающемуся списку, эти элементы добавляются в ваш комбинированный список. Попробуйте добавить код, чтобы проверить, заполнен ли комбинированный список перед тем, как добавлять элементы:

Private Sub ComboBox1_DropButtonClick()

    If ComboBox1.ListCount = 0 Then
        With ComboBox1
            .AddItem " ", 0
            .AddItem "speed", 1
            .AddItem "provisionality", 2
            .AddItem "automation", 3
            .AddItem "replication", 4
            .AddItem "communicability", 5
            .AddItem "multi-modality", 6
            .AddItem "non-linearity", 7
            .AddItem "capacity", 8
            .AddItem "interactivity", 9
        End With
    End If

End Sub

Тогда вам не нужно очищать комбинированный список и очищать выделенный элемент вместе с ним.

...