Отключить выбор определенных элементов в списке? - PullRequest
0 голосов
/ 24 апреля 2018

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

Dim lItem As Long
For lItem = 0 To Sheet1.ListBox1.ListCount - 1
    If Sheet1.ListBox1.Selected(lItem) Then
        Sheet1.ListBox1.Enabled(lItem) = False ' don't work?
    End If
Next

Ответы [ 2 ]

0 голосов
/ 15 мая 2019
For it = 0 To Sheet1.ListBox1.ListIndex 

  If Sheet1.ListBox1.Selected(it) Then
     Sheet1.ListBox1.Selected(it) = False 
     Sheet1.ListBox1.RemoveItem (it)   
  End If

Next

Строка1: проходит по всем индексам списка

Строка2: поиск выбранного элемента

Строка3: отмена выбора

Строка 4: удаление выбранного элемента

0 голосов
/ 21 декабря 2018

Вариант 1: Это принимает выбранный пользователем и эффективно удаляет его, сохраняя при этом оригинальный ListIndex для всех элементов.

Listbox1.List(MyListbox1.ListIndex) = " "

Затем вы можете использовать код для проверки значенияиз ""

Вариант 2: Переместить Listbox1.List(Listbox1.ListIndex) из одного столбца (видимого) в другой, который не является (ширина = 0).Это также сохранило бы исходный порядок списка индексов и значение, если вам нужно восстановить его (сделать его допустимым параметром).

Опция 3: Чтобы получить иллюзию серых строк, какПока полос прокрутки нет, над списком можно размещать надписи без полей с серым фоном.Значение .top должно быть рассчитано с использованием списка .top плюс X * ListIndex, чтобы разместить его непосредственно над недоступной опцией.Затем сделайте заголовок метки = в списке выбора.(Я никогда не говорил, что это легко, просто это было возможно)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...