Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6: Как бы получить ссылку на прародителя контрола? / 7 сообщений из 7, страница 1 из 1
06.03.2010, 13:47
    #36506212
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6: Как бы получить ссылку на прародителя контрола?
Есть форма MyForm
На ней лежит юзерконтрол MyControl
В котором есть еще один юзерконтрол MyCC

Из MyCC требуются две вещи (пока, а возможно потом понадобится что-то еще):
- MyCC должен управлять заголовком формы MyForm
- MyCC должен управлять видимостью контрола MyControl

Всякие пёсьи манипуляции с Parent, Extender и Ambient не помогают. Пока что я вынужден при старте формы "спускать" на уровень MyCC ссылку на MyForm и имя контрола MyControl, но как-то это не очень удобно.
...
Рейтинг: 0 / 0
06.03.2010, 17:27
    #36506318
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6: Как бы получить ссылку на прародителя контрола?
В общем, вопрос стал более абстрактным:

Как получить указатель на форму, из юзерконтрола произвольной вложенности (хочу управлять ее свойствами и перехватывать события)
...
Рейтинг: 0 / 0
08.03.2010, 13:10
    #36507396
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6: Как бы получить ссылку на прародителя контрола?
Usercontrol.Parent — из любого уровня вложенности вернется форма.

Jah loves you.
...
Рейтинг: 0 / 0
08.03.2010, 13:31
    #36507415
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6: Как бы получить ссылку на прародителя контрола?
Antonariy,

да фига с два:

?usercontrol.Parent.name

---------------------------
Microsoft Visual Basic
---------------------------
Run-time error '438':

Object doesn't support this property or method
---------------------------
ОК Справка
---------------------------
...
Рейтинг: 0 / 0
08.03.2010, 13:34
    #36507424
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6: Как бы получить ссылку на прародителя контрола?
А вложенность какого рода? Как контейнер или один юзерконтрол является частью другого?

Jah loves you.
...
Рейтинг: 0 / 0
08.03.2010, 13:57
    #36507444
Antonariy
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6: Как бы получить ссылку на прародителя контрола?
Короче, если как часть, то каждый контрол в иерархии должен иметь свойство:
Код: plaintext
1.
2.
3.
Public Property Get ParentControl() As Object
    Set ParentControl = Parent
End Property
Оно нужно потому что Parent как бы приватное свойство контрола.

Дойти до формы из самого вложенного контрола:
Код: plaintext
1.
2.
3.
4.
    Set p = UserControl.Parent
    While Not TypeOf p Is Form
        Set p = p.ParentControl
    Wend
Jah loves you.
...
Рейтинг: 0 / 0
08.03.2010, 14:04
    #36507453
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
VB6: Как бы получить ссылку на прародителя контрола?
как часть....

Ну это-то понятно - свойство всегда можно спустить или поднять по иерархии. Я просто думал, есть способ проще....
...
Рейтинг: 0 / 0
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / VB6: Как бы получить ссылку на прародителя контрола? / 7 сообщений из 7, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]