vb 用命令创建控件
不是说复制问题,,是说如何才能通过一个循环,我用好多就创建好多,或者是能怎么样,让我多一条上下的滚动条。其它不用的我可以自己隐藏掉? 展开
'一个VScroll1,Label1(0)在Frame2上面
Option Explicit
Dim N As Integer
Private Sub Command1_Click()
On Error Resume Next
Dim i As Integer, lngLabelH As Long, lngLabelTop As Long
lngLabelH = Label1(0).Height + 100
lngLabelTop = Label1(0).Top + lngLabelH
N = Val(InputBox("你想创建多少个控件?"))
For i = 1 To N
Load Label1(i)
Set Label1(i).Container = Frame2
Label1(i).Move Label1(0).Left, lngLabelTop
Label1(i).Visible = True
Label1(i).Caption = i & "/" & N
lngLabelTop = lngLabelTop + lngLabelH
Next i
If lngLabelTop > Frame2.Height Then
Frame2.Height = lngLabelTop + 100
VScroll1.Max = (Frame2.Height - Frame1.Height) \ lngLabelH
VScroll1.Visible = True
Else
VScroll1.Max = 0
VScroll1.Visible = False
End If
End Sub
Private Sub Command2_Click()
'自己去完善删除控件后 滚动条的处理
End Sub
Private Sub Form_Load()
Command1.Caption = "创建控件数组"
Command2.Caption = "删除标签控件"
Frame2.Move 0, 0, Frame1.Width, Frame1.Height
Frame1.Caption = ""
Frame1.BorderStyle = 0
Frame2.Caption = ""
Frame2.BorderStyle = 0
VScroll1.Visible = False
VScroll1.Min = 0
VScroll1.Max = 0
End Sub
Private Sub VScroll1_Change()
Frame2.Top = -VScroll1.Value * (Label1(0).Height + 100)
End Sub
只有用控件数组了,首先创建一个控件,比如说Label1,然后给它的index属性取一个值,一般取0或1(我们就取0吧)
然后添加2个命令按纽command1,command2
最后写如下代码(我仅仅是举个例子,具体位置你自己去改)
Option Explicit: Dim i As Integer, n As Integer
Private Sub Command1_Click()
n = Val(InputBox("你想创建好多个控件?"))
For i = 1 To n
Load Label1(i)
Label1(i).Left = Label1(i - 1).Left
Label1(i).Top = Label1(i - 1).Top + 800
Label1(i).Visible = True
Next i
End Sub
Private Sub Command2_Click()
On Error Resume Next
Dim m As Integer
m = Val(InputBox("你想删除1~" & i - 1 & "中的哪个成员?"))
Unload Label1(m)
If m = 0 Then MsgBox "不能卸载设计时创建的控件"
End Sub
Private Sub Form_Load()
Command1.Caption = "创建控件数组"
Command2.Caption = "删除除设计阶段" & vbLf & "以外的任何一个成员"
End Sub
一般的控件都有Visible属性来控制可见不可见。
用TEXT控件说吧。
在form上建立一个TEXT控件。
text控件属性如下:
index=0
name=text1
再建立一个COMMAND空间。CLICK事件中添加
For i = 1 To 20
Load Text1(i)
Text1(i).Top = i * 100
Text1(i).Visible = True
Next i
(1)在窗体上画出某个控件,设置该控件的Index属性值为0,表示该控件为数组;也可以进行控件名的属性设置,这是建立的第1个元素。
(2)在编程时通过Load方法,添加其余若干个元素,也可以通过unload方法,删除某个添加的元素。
(3)每个新添加的控件,通过Ieft和top属性确定其在窗体的位置,并将Visible属性设置为True。
常规做法是一次性加载一定数量控件数组,不够的时候增加,够了不削减(需要隐藏则隐藏)。