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