Массив элементов управления

Программирование на Visual Basic, главный форум. Обсуждение тем программирования на VB 1—6.
Даже если вы плохо разбираетесь в VB и программировании вообще — тут вам помогут. В разумных пределах, конечно.
Правила форума
Темы, в которых будет сначала написано «что нужно сделать», а затем просьба «помогите», будут закрыты.
Читайте требования к создаваемым темам.
TiX
Начинающий
Начинающий
 
Сообщения: 1
Зарегистрирован: 21.04.2006 (Пт) 8:57

Массив элементов управления

Сообщение TiX » 15.06.2006 (Чт) 2:38

Доброго времени суток.

У меня есть небольшая проблема с массивом эу: динамически созданные элементы не хотят выгружаться в нужном мне обработчике. В любом другом - пожалуйста. Элементы загружаются и выгружаются поочерёдно, т.е. пустых индексов нет.
На форме один комбобокс с именем cboSect, и массивы эу: метка lblG и комбобокс cboGroup. Код:


Private Sub cboGroup_Change(Index As Integer)
If Index = cboGroup.Count-1 then
Load lblG(lblG.Count)
Load cboGroup(cboGroup.Count)

cboGroup(cboGroup.Count - 1).Visible = True
lblG(lblG.Count - 1).Visible = True

cboGroup(cboGroup.Count - 1).Move cboGroup(index).Left ,_ cboGroup(index).Top + 400
lblG(lblG.Count - 1).Move lblG(Index).Left, lblG(Index).Top + 400
lblG(lblG.Count - 1).Caption = "Группа " & Index
'тут в созданный комбобокс загружаются строки
'эти строки для примера, т.к. идёт большой код
cboGroup(cboGroup.Count - 1).AddItem "строка1"
cboGroup(cboGroup.Count - 1).AddItem "строка2"
end if
End Sub

Private Sub cboGroup_Click(Index As Integer)
cboGroup_Change Index
End Sub

Private Sub cboSect_Click()
cboSect_Change
End Sub

Private Sub cboSect_Change()
Dim i As Integer
For i = cboGroup.Count - 1 to 1 Step -1
Unload lblG(i)
Unload cboGroup(i)
Next i
cboGroup(0).ListIndex = -1
End Sub

'загрузим что-нибудь в cboSect
Private Sub Form_Load()
cboSect.AddItem "секция 1"
cboSect.AddItem "секция 2"
cboGroup(0).AddItem "строка1"
cboGroup(0).AddItem "строка2"
End Sub


Если код из cboSect_Change перенести в обработку нажатия кнопки, то всё работает, а так нет. Вылезает ошибка "Unable to unload within this context".
Вмосто Index можно писать lblG.Count-2, т.е. обращаемся к предыдущему элементу
Хелп кто чем. Заранее благодарен.

GSerg
Шаман
Шаман
 
Сообщения: 14286
Зарегистрирован: 14.12.2002 (Сб) 5:25
Откуда: Магадан

Сообщение GSerg » 15.06.2006 (Чт) 2:43

Ну, во-первых, http://bbs.vbstreets.ru/viewtopic.php?t=23315
Очень рекомендую.

И во-вторых, http://bbs.vbstreets.ru/search.php по номеру ошибки.
В следующий раз будет сразу предупреждение.
Как только вы переберёте все варианты решения и не найдёте нужного, тут же обнаружится решение, простое и очевидное для всех, кроме вас


Вернуться в Visual Basic 1–6

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

Сейчас этот форум просматривают: AhrefsBot и гости: 16

    TopList