Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > .NET для новичков > Обращение к созданному объекту


Автор: FallFan 17.10.2012, 13:55
Доброго времени суток!

На форме создаю объект GroupBox (не весь код):

Код

gbCalendar.Name = "gbCalendar"
Me.Controls.Add(gbCalendar)


В объекте GroupBox создаю список Combobox (не весь код):

Код

gbMonth.Name = "gbMonth"
Me.Controls("gbCalendar").Controls.Add(cmbMonth)


Вопрос: как мне обратиться к нему для очистки/заполнения самого списка ?

Код:
Код

Me.Controls.("gbCalendar").Controls("cmbMonth").Clear
Me.Controls.("gbCalendar").Controls("cmbMonth").Additem


Вызывает ошибку: "Clear"/"AddItem" Не является членом "System.Windows.Forms.Control".

Спасибо!

Автор: diadiavova 17.10.2012, 20:35
А что это за метод такой AddItem ? smile 

Автор: FallFan 17.10.2012, 20:56
Да, точно, такого метода нет. 

Так вернее:
Код

Me.Controls.("gbCalendar").Controls("cmbMonth").Items.Add("Test")


Однако, ошибка все-равно остается.

Автор: diadiavova 17.10.2012, 21:33
Код

With CType(Me.Controls.("gbCalendar").Controls("cmbMonth"), ComboBox)
    .Clear()
    .Items.Add("Test")
End With
Дело в приведении типов, у типа Control действительно нет такого свойства.

Автор: lomaster 17.10.2012, 21:58
Цитата

Me.Controls.("gbCalendar").Controls("cmbMonth")
 А зачем все эти "пляски"? gbCalendar у вас уже есть, как и cmbMonth.

Автор: diadiavova 17.10.2012, 22:18
Цитата(lomaster @  17.10.2012,  22:58 Найти цитируемый пост)
 А зачем все эти "пляски"? gbCalendar у вас уже есть, как и cmbMonth. 

Он их добавляет программно и судя по всему, это локальные переменные, а обращается к ним видимо из другого метода.

Автор: lomaster 18.10.2012, 00:02
Так сделать не локальными.
Какая нужда заставила так делать? (это к автору)

Автор: diadiavova 18.10.2012, 00:48
Цитата(lomaster @  18.10.2012,  01:02 Найти цитируемый пост)
Так сделать не локальными.

В большинстве случаев это хороший совет, но тут был вопрос о том, почему недоступны члены класса ComboBox, я, собственно, на него и ответил. smile 

Автор: FallFan 18.10.2012, 20:39
Все верно: программно создаю рамку, в ней другие элементы (около 50-ти шт.). Добавляю "через" рамку для удобства дальнейшего перемещения по форме,
а процедура, которая все это делает в отдельном модуле.

Цитата

Так сделать не локальными.
Какая нужда заставила так делать? (это к автору) 


Честно говоря, просто об этом не думал.

Спасибо за помощь!

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)