Dim i As Integer
For i = FrmMain.LBound To FrmMain.UBound Step 1
FrmMain(i).Visible = False
Next i
FrmMain(SetTSp.SelectedItem.Index - 1).Visible = True
FrmMain(SetTSp.SelectedItem.Index - 1).Move 300, 570, 6135, 3975
FrmMain(SetTSp.SelectedItem.Index - 1).ZOrder 0
Dim i As Integer
For i = FrmMain.LBound To FrmMain.UBound Step 1
FrmMain(i).Visible = False
Next i
FrmMain(SetTSp.SelectedItem.Index - 1).Visible = True
FrmMain(SetTSp.SelectedItem.Index - 1).Move 300, 570, 6135, 3975
FrmMain(SetTSp.SelectedItem.Index - 1).ZOrder 0
End Sub
'目的是想在两个TAB上都会出现5个LABEL,但不行。
Private Sub Form_Load()
Me.Width = Screen.Width
Me.Height = Screen.Height
SSTab1.Height = Me.Height * 0.95
SSTab1.Width = Me.Width * 0.95
SSTab1.Top = (Me.Height - SSTab1.Height) / 2
SSTab1.Left = (Me.Width - SSTab1.Width) / 2
For i = 1 To 5
SSTab1.Tab = 0
Load Label1(i)
With Label1(i)
.Caption = i
.Left = Label1(i - 1).Left
.Top = Label1(i - 1).Top + 2 * Label1(i - 1).Height
.Visible = True
End With
SSTab1.Tab = 1
Load Label2(i)
With Label2(i)
.Caption = i
.Left = Label2(i - 1).Left
.Top = Label2(i - 1).Top + 2 * Label2(i - 1).Height
.Visible = True
End With
Next i
End Sub
shawls(小山(坚持VB,学Delphi和C#))能否对程序做一下解释,小弟好象不懂您的意思,是不是我问题没说清楚。
各位路过的也请GZ一下嘛!!!!!!!
: cy_nwau(阿东) (2002-1-6 19:42:17) 得0分
'在窗体上做了个SSTAB和LABEL1(0)在第0个TAB上,LABEL2(0)在第1个TAB上。
'目的是想在两个TAB上都会出现5个LABEL,但不行。
if SetTSp.SelectedItem.Index =5 thenlabel1(5).Visible = True '可见
label1(5).Move 300, 570, 6135, 3975 '位置
label1(5).ZOrder 0label2(5).Visible = True
label3(5).Move 300, 570, 6135, 3975
label4(5).ZOrder 0end if
qq9181729
Private Sub Command1_Click()
SSTab1.Tab = 1 '放在第二个TAB
Set Label1.Container = SSTab1
End Sub
我的一个SSTAB控件有5个TAB,我想给5个TAB以不同的ToolTipText,能否实现。
For i = 1 To 3
TabStrip1.Tabs(i).ToolTipText = "tab" + Str(i)
Next
End Sub
Dim Tips() As StringPrivate Sub Form_Load()
PerTabWidth = SSTab1.Width / SSTab1.Tabs
ReDim Tips(SSTab1.Tabs)
For i = 0 To SSTab1.Tabs - 1
Tips(i) = "这是SSTAB的第 " & i & " 个ToolTipText。没有问题了吧。"
Next
End SubPrivate Sub SSTab1_Click(PreviousTab As Integer)
SSTab1.ToolTipText = SSTab1.Tab
End SubPrivate Sub SSTab1_MouseMove(Button As Integer, Shift As Integer, X As Single, Y As Single)
SSTab1.ToolTipText = Tips(Int(X / PerTabWidth))
End Sub
Private Sub SSTab1_Click(PreviousTab As Integer)
SSTab1.ToolTipText = SSTab1.Tab
End Sub
'在窗体上做了个SSTAB和LABEL1(0)在第0个TAB上,LABEL2(0)在第1个TAB上。
'目的是想在两个TAB上都会出现5个LABEL,但不行。
Private Sub Form_Load()
Me.Width = Screen.Width
Me.Height = Screen.Height
SSTab1.Height = Me.Height * 0.95
SSTab1.Width = Me.Width * 0.95
SSTab1.Top = (Me.Height - SSTab1.Height) / 2
SSTab1.Left = (Me.Width - SSTab1.Width) / 2
For i = 1 To 5
SSTab1.Tab = 0
Load Label1(i)
With Label1(i)
.Caption = i
.Left = Label1(i - 1).Left
.Top = Label1(i - 1).Top + 2 * Label1(i - 1).Height
.Visible = True
End With
SSTab1.Tab = 1
Load Label2(i)
With Label2(i)
.Caption = i
.Left = Label2(i - 1).Left
.Top = Label2(i - 1).Top + 2 * Label2(i - 1).Height
.Visible = True
End With
Next i
End Sub
使用SET LABEL1(I)=FORM1.CONTROLS.ADD("VB.LABEL","LABEL1"+TRIM(STR(I)))
Private Sub Form_Load()
Me.Width = Screen.Width
Me.Height = Screen.Height
SSTab1.Height = Me.Height * 0.95
SSTab1.Width = Me.Width * 0.95
SSTab1.Top = (Me.Height - SSTab1.Height) / 2
SSTab1.Left = (Me.Width - SSTab1.Width) / 2
For I = 0 To 5
SSTab1.Tab = 0
Set LABEL1(I) = Form1.Controls.Add("VB.LABEL", "LABEL1" + Trim(Str(I)))
With LABEL1(I)
.Caption = I
.Visible = True
Set .Container = SSTab1
If I <> 0 Then
.Left = LABEL1(I - 1).Left
.Top = LABEL1(I - 1).Top + 2 * LABEL1(I - 1).Height
Else
.Left = 100
.Top = 100
End If
End With
SSTab1.Tab = 1
Set LABEL2(I) = Form1.Controls.Add("VB.LABEL", "LABEL2" + Trim(Str(I)))
With LABEL2(I)
.Caption = I
.Visible = True
Set .Container = SSTab1
If I <> 0 Then
.Left = LABEL2(I - 1).Left
.Top = LABEL2(I - 1).Top + 2 * LABEL2(I - 1).Height
.Visible = True
Else
.Left = 100
.Top = 100
End If
End With
Next I
End Sub
还有,不能把Load和set label().container=sstab1同放在Form_Load()中, 必须分开, 否则,达不到效果。这应该是VB的BUG。例子如下:
SSTab1.Tab = 0
For i = 1 To 5
With Label1(i)
Set .Container = SSTab1
.Visible = True
End With
Next
SSTab1.Tab = 1
For i = 1 To 5
With Label2(i)
Set .Container = SSTab1
.Visible = True
End With
Next i
End SubPrivate Sub Form_Load()
Me.Width = Screen.Width
Me.Height = Screen.Height
SSTab1.Height = Me.Height * 0.95
SSTab1.Width = Me.Width * 0.95
SSTab1.Top = (Me.Height - SSTab1.Height) / 2
SSTab1.Left = (Me.Width - SSTab1.Width) / 2
For i = 1 To 5
Load Label1(i)
With Label1(i)
.Caption = i & "第一个Label数组"
.Left = Label1(i - 1).Left
.Top = Label1(i - 1).Top + 2 * Label1(i - 1).Height
End With
Next
For i = 1 To 5
Load Label2(i)
With Label2(i)
.Caption = i & "第二个Label数组"
.Left = Label2(i - 1).Left
.Top = Label2(i - 1).Top + 2 * Label2(i - 1).Height
End With
Next i
End Sub
'*********************************************************************
'而下面这种方式不行,达不到要求:(其实就是把两段一同放在Form_Load事件中)
'你们可以试一试。
'*********************************************************************
'Private Sub Form_Load()
' Me.Width = Screen.Width
' Me.Height = Screen.Height
' SSTab1.Height = Me.Height * 0.95
' SSTab1.Width = Me.Width * 0.95
' SSTab1.Top = (Me.Height - SSTab1.Height) / 2
' SSTab1.Left = (Me.Width - SSTab1.Width) / 2
'
' For i = 1 To 5
' Load Label1(i)
' With Label1(i)
' .Caption = i & "第一个Label数组"
' .Left = Label1(i - 1).Left
' .Top = Label1(i - 1).Top + 2 * Label1(i - 1).Height
' End With
' Next
'
' For i = 1 To 5
' Load Label2(i)
' With Label2(i)
' .Caption = i & "第二个Label数组"
' .Left = Label2(i - 1).Left
' .Top = Label2(i - 1).Top + 2 * Label2(i - 1).Height
' End With
' Next i
' '**********************************************
' SSTab1.Tab = 0
' For i = 1 To 5
' With Label1(i)
' Set .Container = SSTab1
' .Visible = True
' End With
' Next
'
' SSTab1.Tab = 1
' For i = 1 To 5
' With Label2(i)
' Set .Container = SSTab1
' .Visible = True
' End With
' Next i
'End Sub
'
'
你的代码我试了一下,不行啊?只能在第一个TAB上出现五个LABEL,第二个TAB上出现不了。什么原因?
Dim LABEL1(5) As Label, LABEL2(5) As Label
Private Sub Form_Load()
Me.Width = Screen.Width
Me.Height = Screen.Height
SSTab1.Height = Me.Height * 0.95
SSTab1.Width = Me.Width * 0.95
SSTab1.Top = (Me.Height - SSTab1.Height) / 2
SSTab1.Left = (Me.Width - SSTab1.Width) / 2
For I = 0 To 5
SSTab1.Tab = 0
Set LABEL1(I) = Form1.Controls.Add("VB.LABEL", "LABEL1" + Trim(Str(I)))
With LABEL1(I)
.Caption = I
.Visible = True
Set .Container = SSTab1
If I <> 0 Then
.Left = LABEL1(I - 1).Left
.Top = LABEL1(I - 1).Top + 2 * LABEL1(I - 1).Height
Else
.Left = 100
.Top = 100
End If
End With
SSTab1.Tab = 1
Set LABEL2(I) = Form1.Controls.Add("VB.LABEL", "LABEL2" + Trim(Str(I)))
With LABEL2(I)
.Caption = I
.Visible = True
Set .Container = SSTab1
If I <> 0 Then
.Left = LABEL2(I - 1).Left
.Top = LABEL2(I - 1).Top + 2 * LABEL2(I - 1).Height
.Visible = True
Else
.Left = 100
.Top = 100
End If
End With
Next I
End Sub
您的这一个程序少一个SUB,所以我不能确定您的这段程序写在哪一个事件里的。请明示
SSTab1.Tab = 0
For i = 1 To 5
With Label1(i)
Set .Container = SSTab1
.Visible = True
End With
Next
SSTab1.Tab = 1
For i = 1 To 5
With Label2(i)
Set .Container = SSTab1
.Visible = True
End With
Next i
End Subhand2001(我爱VB不爱我)
您的这一个程序少一个SUB,所以我不能确定您的这段程序写在哪一个事件里的。请明示
在form上放置Label1(0),Label2(0),Sstab1三个控件。
其中Label1(0),Label2(0)的容器是Form ,而不是SStab1
——---————————
Private Sub Form_Activate()
SSTab1.Tab = 0
For i = 0 To 5
With Label1(i)
Set .Container = SSTab1
.Visible = True
End With
Next
SSTab1.Tab = 1
For i = 0 To 5
With Label2(i)
Set .Container = SSTab1
.Visible = True
End With
Next i
SSTab1.Tab = 0
End SubPrivate Sub Form_Load()
Me.Width = Screen.Width
Me.Height = Screen.Height
SSTab1.Height = Me.Height * 0.95
SSTab1.Width = Me.Width * 0.95
SSTab1.Top = (Me.Height - SSTab1.Height) / 2
SSTab1.Left = (Me.Width - SSTab1.Width) / 2
For i = 1 To 5
Load Label1(i)
With Label1(i)
.Caption = i & "第一个Label数组"
.Left = Label1(i - 1).Left
.Top = Label1(i - 1).Top + 2 * Label1(i - 1).Height
End With
Next
For i = 1 To 5
Load Label2(i)
With Label2(i)
.Caption = i & "第二个Label数组"
.Left = Label2(i - 1).Left
.Top = Label2(i - 1).Top + 2 * Label2(i - 1).Height
End With
Next i
End Sub