SSTab и дочерние элементы управления каждой вкладки - PullRequest
3 голосов
/ 02 июня 2011

SSTab скрывает / показывает дочерние элементы управления, сдвигая их в / из отрицательного значения.В основном все дочерние элементы управления имеют экземпляр элемента управления SSTab в качестве родительского HWND.

Есть ли способ определить индекс вкладки для дочерних элементов управления - любой, кроме зацикливания свойства SSTab.Tab?Как экземпляр SSTab управляет связью дочерних элементов управления с вкладками?

Ответы [ 2 ]

1 голос
/ 31 января 2014

Элемент управления sstab смещает элементы управления, которые не находятся на активной вкладке, на -75000. Если вы хотите знать только, какие элементы управления находятся на активной вкладке, а не все остальные элементы управления на неактивных вкладках, вы можете проверить свойство left и свойство контейнера.

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

Private Sub SSTab1_Click(PreviousTab As Integer)

    Dim o As Object

    For Each o In Me.Controls
        If TypeOf o.Container Is SSTab Then
            If o.Left < -40000 Then
                'control is not on the current tab
                o.Visible = False
            Else
                'control is on the current tab
                o.Visible = True
            End If
        End If
    Next

End Sub

Если вам необходимо узнать, какие элементы управления находятся на определенных вкладках, вы можете вызвать событие click с помощью кода и создать список элементов управления с левыми полями> 0

1 голос
/ 20 июня 2011

Не то, что я видел.Лучше всего ставить элементы управления каждой вкладки в отдельную рамку или картинку.Это позволяет вам определить родительский элемент управления и в конечном итоге отойти от глючного элемента управления SSTab.

Я написал статью, объясняющую этот и другие недостатки с элементом управления SSTab по адресу: http://hashvb.earlsoft.co.uk/Tabbed_dialogs

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