vb6在运行时在后台使用标签更改SSTab的颜色

vb6在运行时在后台使用标签更改SSTab的颜色,vb6,Vb6,我正在尝试更新旧的VB6应用程序。我正在努力在运行时更改SSTab控件的背景色 我知道我不能仅仅将背景色设置为所需的颜色 在设计时,我已在每个选项卡上创建了一个标签,然后将标签调整为sstab尺寸。然后我设置标签的背景色。这个很好用 但是,我真正想做的是在运行时执行此操作,这样,如果将来在窗体上添加新的选项卡控件,我就不需要每次在设计时手动执行此操作 如果有人能告诉我在运行时在SSTab控件的每个选项卡上创建和显示标签的正确方向,我将不胜感激 我没有在所有标签上都有框架,所以我不想使用框架容器来

我正在尝试更新旧的VB6应用程序。我正在努力在运行时更改SSTab控件的背景色

我知道我不能仅仅将背景色设置为所需的颜色

在设计时,我已在每个选项卡上创建了一个标签,然后将标签调整为sstab尺寸。然后我设置标签的背景色。这个很好用

但是,我真正想做的是在运行时执行此操作,这样,如果将来在窗体上添加新的选项卡控件,我就不需要每次在设计时手动执行此操作

如果有人能告诉我在运行时在SSTab控件的每个选项卡上创建和显示标签的正确方向,我将不胜感激

我没有在所有标签上都有框架,所以我不想使用框架容器来保存标签。我宁愿在运行时将标签放在选项卡容器上


谢谢,我期待您的回复。

在设计时创建一个标签,并将其索引设置为0。您可以稍后执行
加载labelname(newindex)
来创建更多的标签实例。一旦创建了新控件,就可以定位它们,设置背景色,一切都完成了。

正如svinto所说,您可以将新控件加载到控件数组中,但还有更多的内容

首先,新控件不可见,因此必须设置.Visible=True 您还需要在创建控件之前设置当前选项卡,以便将其放置在该选项卡上

假设您在第一个选项卡上已经有了第一个标签:

For i = 1 To Me.SSTab1.Tabs - 1
    Me.SSTab1.Tab = i
    Load lblOne(i)
    lblOne(i).Visible = True
Next
此外,这在Form_Load事件中不起作用,但在Form_Activate中起作用

还有另一种方法可以从头开始创建标签,而不是使用控件数组,这可能会更好,因为您不需要将第一个标签添加到表单中:

Private Sub Form_Activate()
    Dim lbl() As Label
    Dim i As Integer
    Dim name As String

   ReDim lbl(SSTab1.Tabs - 1)
   For i = 0 To Me.SSTab1.Tabs - 1
        Me.SSTab1.Tab = i
        name = "MyLabel" & CStr(i)
        Set lbl(i) = Form1.Controls.Add("VB.Label", name)
        Set lbl(i).Container = Me.SSTab1
        lbl(i).Visible = True
        lbl(i).Caption = name
        lbl(i).Move 40, 345
        lbl(i).BackColor = vbGreen
    Next
End Sub

这正是你需要做的。