我正在尝试更新旧的VB6应用程序。我正在努力在运行时更改SSTab控件的背景颜色。
我知道我不能将Backcolor设置为所需的颜色。
在设计时我在每个标签上创建了一个标签,然后将标签大小调整为sstab尺寸。然后我将标签设置为背景色。这很好。
但是,我真正想要做的是在运行时执行此操作,以便将来在表单上添加新的选项卡控件时,我不需要每次在设计时手动执行此操作。
如果有人能指出我在正确的方向上在运行时在SSTab控件的每个选项卡上创建和显示标签,我将不胜感激?
我的所有标签上都没有框架,所以我不想使用框架容器来固定标签。我宁愿在运行时将标签放在标签容器上。
谢谢,我期待着您的回复。
答案 0 :(得分:4)
正如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
答案 1 :(得分:2)
在设计时创建一个标签,并将其索引设置为0.稍后可以执行Load labelname(newindex)
以创建更多标签实例。创建后定位它们,设置背景颜色,你就完成了。