powered by simpleCommunicator - 2.0.53     © 2025 Programmizd 02
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Tabbed Dialog (SSTab) - на какой закладке находится контрол?
4 сообщений из 4, страница 1 из 1
Tabbed Dialog (SSTab) - на какой закладке находится контрол?
    #37568763
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Как бы получить соответствие в рантайме, какой контрол на какой закладке находится. Сам контрол своим контейнером считает SSTab. Понятно, что SSTab знает, что где находится, но делится ли он этой инфой?

На самый крайняк сгодится информация, находится ли некий контрол на активной вкладке. Я думал, что SSTab при переключении манипулирует свойством Visible принадлежаих ему контролов, ан нет, видимо что-то делает через API.
...
Рейтинг: 0 / 0
Tabbed Dialog (SSTab) - на какой закладке находится контрол?
    #37568776
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А еще при переходе по контролам табом он передает фокус невидимым контролам.
Самое лучшее это засунуть все контролы в какой-нибудь фрейм, а фрейм в закладку, вопросы что да где отпадают за ненадобностью. Если нужен какой-то универсальный механизм, то из фреймов можно сделать массив и соглашение об именах, если на форме не дай бог более одного сстаба.

Вообще неудачный это контрол, я им не пользуюсь. За возможность переключать вкладки в дизайн-тайме приходится расплачиваться борьбой с глюками, душераздирающим дизайном, отсутствием поддержки стилей и наличием лишнего ocx.
TabStrip из Common Controls лишен этих недостатков.
...
Рейтинг: 0 / 0
Tabbed Dialog (SSTab) - на какой закладке находится контрол?
    #37568781
TpaBka
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Я юзаю C1Tab от ComponentOne
у него есть свойство GetTab
Вот из хелпа:
GetTab Property

Returns the tab page where a given control is located.

Syntax

val% = [form!]C1Tab.GetTab(hWnd As Long)

Remarks

This property is only useful if the control has an hWnd property.

If you pass GetTab an invalid window handle, or a window that does not belong to any tab, GetTab will return the value -1.

This property is read-only.

Data Type

Integer


При выполнении цикла

Код: vbnet
1.
2.
3.
For Each ctr In Me
MsgBox ctr.Name & " " & C1Tab1.GetTab(ctr.hWnd)
Next



если контрол находится C1Tab1, то возвращаемое значение
Код: vbnet
1.
C1Tab1.GetTab(ctr.hWnd)


будет равно индексу таба которому принадлежит контрол
Если контрол вне C1Tab1 возвращаемое значение =-1
...
Рейтинг: 0 / 0
Tabbed Dialog (SSTab) - на какой закладке находится контрол?
    #38006326
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Опять всплыл вопрос - решил поискать по форуму, нашел свой же прошлогодний топик


Итак, методом последовательного приближения, пёсьих манипуляций и тыка выявил, что SSTab делает с контролами неактивных закладок. Он задвигает их Control.Left=Control.Left-75000 за край себя, а для активной - достает.
То-то я понять не могу - у меня отрабатывает процедура размещения контролов на форме (которая двигает их при ресайзе), после чего при переключениях вкладок начинает твориться такое, что я просто в ступор впадал - контролы других закладок оказывались видимы, на некоторых вкладках - невидимы (видимо уже пытаясь восстановиться по принципу Left+75000 улетали за другой край SSTab-а), в общем - веселуха.

Это, собственно, автоответ на мой же вопрос топика.

Теперь попробую с этим бороться, хоть понятно теперь - куда.
...
Рейтинг: 0 / 0
4 сообщений из 4, страница 1 из 1
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Tabbed Dialog (SSTab) - на какой закладке находится контрол?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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