VB6 ссылка на UserControl - PullRequest
1 голос
/ 21 июля 2009

У меня есть переменная типа UserControl private в верхней части класса.

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

Private mo_SelectedControl As UserControl
'...
'...Some where in a Sub:
set SelectedControl = myUserControl

Я попытался с myUserControl.object, и он тоже не работает. Есть идеи?

Ответы [ 2 ]

3 голосов
/ 21 июля 2009

Попробуйте объявить переменную как тип Control вместо UserControl.

0 голосов
/ 21 июля 2009

Просто для вашей информации UserControl довольно запутанный. UserControl - это интерфейс, который код VB (изнутри элемента управления) использует для взаимодействия с сайтом, на котором он размещен.

Доступ к интерфейсу UserControl осуществляется через ключевое слово UserControl. Этот интерфейс не наследуется окончательной реализацией, поэтому фактический открытый интерфейс элемента управления полностью состоит из всего, что вы решите сделать общедоступным.

Фактический объект, созданный VB при добавлении экземпляра элемента управления в форму, представляет собой совокупность COM объекта, используемого для размещения элемента управления (например, объекта со свойствами Left и Top) и открытой части пользовательский элемент управления. К сожалению, фактически агрегированный интерфейс не является UserControl, несмотря на то, что он имеет несколько общих членов.

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...