Определите и заполните список - PullRequest
3 голосов
/ 31 декабря 2011

Для меня загадка: каков синтаксис для заполнения списка? Но сначала: как вы определяете список? На многих форумах я читаю: ListBox1.Additem ... Но откуда они знают, что это «ListBox1»?

Ответы [ 3 ]

2 голосов
/ 01 января 2012

ListBox1.AddItem для загрузки одного столбца ListBox (ответ CodyGrey охватывает это).

Если вы используете многостолбцовый ListBox (свойство .ColumnCount> 1), вам нужно загрузить массив в .List. Следующий фрагмент загружает 3 строки в 2 столбца ListBox

Dim dat(0 To 2, 0 To 1) As Variant

dat(0, 0) = "A"
dat(0, 1) = "B"
dat(1, 0) = "C"
dat(1, 1) = "D"
dat(2, 0) = "E"
dat(2, 1) = "F"

ListBox1.List = dat

Доступ к списку: (это будет отличаться для разных версий Word, это на 2003 год)

Для доступа к свойствам ListBox:

  1. Отображение панели инструментов «Control Toolbox»
  2. Перейти в режим проектирования
  3. Щелкните элемент управления и выберите «Свойства» на «Панели управления»
  4. Свойство Name теперь должно быть видимым и редактируемым
  5. Можно также установить другие свойства, такие как ColumnCount и т. Д.
2 голосов
/ 31 декабря 2011

Это имя по умолчанию для ListBox элемента управления при добавлении его в форму.VB и VBA автоматически присваивают имена новым или неназванным элементам управления с именем типа элемента управления с суффиксным целочисленным идентификатором.

Это совершенно не имеет значения, как называется ваш элемент управления.Смысл примера кода заключается в демонстрации концепции.Вам следует заменить ListBox1 на то, что называется вашим элементом управления.

И вы должны определенно назвать свои элементы управления чем-то отличным от значения по умолчанию, поскольку, как вы заметили здесь, это не очень наглядно.

Раньше рекомендовалось всем присваивать имена элементам управления после некоторого квази-венгерского обозначения с трехбуквенным префиксом, указывающим тип элемента управления, за которым следует ваше обычное описательное имя.За последние несколько лет произошла большая негативная реакция на все, что похоже на венгерскую нотацию, но я думаю, что это все еще весьма полезно в отношении именования элементов управления GUI, поэтому я все еще использую это.Для элемента управления ListBox я мог бы назвать это что-то вроде: lstCustomers или lstItemsForSale.Но это совершенно необязательно: опять же, то, что вы выбираете для именования ваших элементов управления, не имеет отношения к тому, как работает код или как будет вести себя приложение.

Итак, чтобы заполнить список в VB 6 и / или VBA, вы 'd используйте следующий код, где myListBox - имя вашего ListBox элемента управления:

' Add an item to the end of the list
myListBox.AddItem "Peaches"

' Insert an item at the top of the list
myListBox.AddItem "Apples", 0

' Remove the first item in the list
myListBox.RemoveItem 0
1 голос
/ 08 декабря 2016

При использовании VBA в Access хорошим способом одновременного заполнения всего списка является использование свойства RowSource, когда ListBox представляет собой ValueList. Метод AddItem немного медленный при добавлении большого количества записей.

Например, чтобы заполнить список файлов из каталога, вы можете использовать:

Dim src As String
Dim S as String

S = Dir(FullPathToCurrentDirectory & "\*.*")

While Len(S) <> 0
        src = src & """" & S & """;"
        S = Dir
Wend
If Len(src) = 0 Then src = """"";"
Me.lstFiles.RowSource = Left(src, Len(src) - 1) ' leave off the last ;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...