как определить массивы списков в vb6? - PullRequest
0 голосов
/ 04 декабря 2011

Я хочу объявить массив Listbox в vb6, и мне нужна помощь, чтобы сделать это.Я пробовал этот код:

Dim list() As ListBox

, но имеет следующую ошибку:

object variable or with block variable not set 91

1 Ответ

3 голосов
/ 04 декабря 2011

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

Если вам нужно создать массив вручную, помните, что вам нужно его размерить. Например.,

Dim list(0 To 9) As ListBox

Или:

Dim list() as ListBox
...
ReDim list(0 To 9) As ListBox

Но вы также должны поместить ListBoxes в массив. Когда вы впервые измеряете массив, вы получаете только сам массив. Все его записи установлены на Nothing, что означает «переменная объекта или переменная блока не установлена». Вы должны Set каждая запись массива в допустимый ListBox, прежде чем вы можете использовать его.

Если вы хотите добавить элементы управления в форму во время выполнения, используйте Controls.Add. Например:

For i = LBound(list) To UBound(list)
    Set list(i) = Controls.Add("VB.ListBox", "List" & i, Me)
    list(i).Visible = True

    list(i).AddItem "hello"
    list(i).Move 0, list(i).Height * i
Next
...