2015-08-05 2 views
1

I Удалить элемент управления массива с помощью Unload и попытаться заменить элемент, используя следующий кодМожно ли удалить элемент массива элементов управления?

Private Sub mnudelete_Click() 
Dim i As Integer 
MsgBox (SelectedItemIndex) 
RoomIndex = SelectedItemIndex 
Unload frmData.lblRoom(RoomIndex) 
Unload frmData.brdrRoom(RoomIndex) 
For i = SelectedItemIndex To NumberOfRooms 
    lblRoom(i) = lblRoom(i + 1) 
    brdrRoom(i) = brdrRoom(i + 1) 
Next 
NumberOfRooms = NumberOfRooms - 1 
End Sub 

но произошла какая-то ошибка, можно выполнить удаление в массиве элементов управления? help me plz :)

+1

«некоторая ошибка» немного расплывчата. Что на самом деле происходит? :) –

+0

Ошибка компилятора: функция или функция не определена – Anugrah

+1

Есть ли у вас Option Explicit set? Что такое 'SelectedItemIndex', откуда он? Он установлен? – Fred

ответ

1

Вы можете удалить элементы управления только в Control Array, если вы добавили их во время выполнения (попробуйте удалить тот, который вы добавили через конструктора, и вы получите сообщение об ошибке). Этот код должен работать:

Unload lblRoom(RoomIndex) 
Unload brdrRoom(RoomIndex) 

От MSDN:

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

+1

Чтобы развернуть бит на ответе C-Pound: если вы хотите динамически создавать элементы управления в своей форме, вы можете использовать оператор Load, чтобы добавить дубликат существующего элемента управления. Должен быть хотя бы один добавленный во время разработки. – BobRodes

Смежные вопросы