SSTab和每个标签的子控件

时间:2011-06-01 21:19:09

标签: vb6

SSTab通过将子控制转换为负值来隐藏/显示子控件。基本上所有子控件都将SSTab控件实例作为父HWND。

有没有办法确定子控件的选项卡索引 - 除了循环SSTab.Tab属性之外? SSTab实例如何管理子控件到选项卡关联?

2 个答案:

答案 0 :(得分:1)

不是我见过的。您最好的选择是将每个标签的控件移动到专用的图片框或框架中。 这允许您告诉控件的父级是什么,并最终远离有缺陷的SSTab控件。

我写了一篇文章解释了这个以及SSTab控件的各种其他缺陷: http://hashvb.earlsoft.co.uk/Tabbed_dialogs

答案 1 :(得分:1)

sstab控件将不在活动选项卡上的控件移动-75000。如果您只想知道活动选项卡上的控件与非活动选项卡上的所有其他控件,您可以检查left属性和容器属性。

以下代码将在用户单击选项卡时切换控件的可见性,以便保留Tab键顺序

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事件并构建一个包含lefts&gt;的控件列表。 0