Народ!
Подскажите, как динамически загрузить в форму комбобокс со свойством Style = 2 (Dropdown List).
По умолчанию, контрол грузится с Style = 0 (Dropdown Combo). Изменение этого свойства во время выполнения не представляется возможным (свойство доступно для редактирования только в режиме дизайна формы). Возможно кто-то знает обходные пути.
Буду очень благодарен за подсказку.
Вот фрагмент кода, выполняющего указанные действия:
Private WithEvents m_ComboBox As VB.ComboBox
Sub LoadControls()
...
Set m_ComboBox = colControls.Add("VB.ComboBox", m_MainCtlName)
'm_ComboBox.Style = 2 'а вот так нельзя :(( ... да уж больно хочется
...
End Sub
Как вариант — создай User Control и помести в него нужный комбобокс с нужными настройками. После этого можешь добавлять его в рантайме сколько угодно.
WBR, Mout
Спасибо за совет.
Это, конечно, вриант, но тогда на форме появится MyComboBox, а не ComboBox.
Как вариант, можно еще создать массив контролов из одного элемента с нужными настройками и сделать этот элемент невидимым, а потом загружать новые видимые элементы в массив. При этом все элементы будут иметь одинаковое имя (но разный Index). В конце концов можно блокировать ввод с клавиатуры для комбобокса, у которого Style = 0.
Но мне интересна именно возможность загрузить комбобокс с нужными настройками и с произвольным (допустимым) именем. Может кто-то знает. Подозреваю, что можно как-то переключить контрол в Design Mode через базовые интерфейсы контролов. Ведь бейсик делает это.
Здравствуйте USSD, Вы писали:
USSD>Как вариант, можно еще создать массив контролов из одного элемента с нужными настройками и сделать этот элемент невидимым, а потом загружать новые видимые элементы в массив. При этом все элементы будут иметь одинаковое имя (но разный Index). В конце концов можно блокировать ввод с клавиатуры для комбобокса, у которого Style = 0.
USSD>Но мне интересна именно возможность загрузить комбобокс с нужными настройками и с произвольным (допустимым) именем. Может кто-то знает. Подозреваю, что можно как-то переключить контрол в Design Mode через базовые интерфейсы контролов. Ведь бейсик делает это.
Если выяснишь как — свисти

Мне не удалось решить проблему таким образом — посему я пошел по пути наименьшего сопротивления