Private Sub Command1_Click() Dim intX As Integer, intY As Integer Dim frmNew(1 To 5, 1 To 2) As New Form1 For intY = 1 To 2 For intX = 1 To 5 frmNew(intX, intY).Show frmNew(intX, intY).WindowState = vbMinimized '为了不让它们第一次以正常大小出现而 '创建最小化窗体,可改变 '上面两行的顺序。 Next intX Next intY End Sub 嘿嘿,看着怎么有点象MSDN中“创建对象数组”里的代码呢?嘎嘎
补充补充,别把里面的代码放在FORM1_LOAD里面,不然呢,会溢出滴,应该在FORM1对象初始化完成后才能这么干. 你可以进行类似于下面的声明 dim mObj() as object redim mobj(1,2,3,4,5,6,7,8,9) 然后挨个去set他们....
ZCSOR()大哥的方法可以创建新的窗体,但是我用类似的方法不能添加控件啊!
奥,说得是控件数组 严格意义上的控件数组,是一维的,因为只有一个index熟悉么但是也可以用变量来动态产生控件,改一下楼上的例子:Private Sub Command1_Click() Dim intX As Integer, intY As Integer Dim txtNew(1 To 5, 1 To 2) As TextBox For intY = 1 To 2 For intX = 1 To 5 Set txtNew(intX, intY) = Me.Controls.Add("VB.TextBox", "Cmd" & intX & "_" & intY) txtNew(intX, intY).Move 600 * intX, 300 * intY, 600, 300 txtNew(intX, intY).Visible = True Next intX Next intY End Sub
Dim test(0 To 3, 0 To 5)
Dim intX As Integer, intY As Integer
Dim frmNew(1 To 5, 1 To 2) As New Form1
For intY = 1 To 2
For intX = 1 To 5
frmNew(intX, intY).Show
frmNew(intX, intY).WindowState = vbMinimized
'为了不让它们第一次以正常大小出现而
'创建最小化窗体,可改变
'上面两行的顺序。
Next intX
Next intY
End Sub
嘿嘿,看着怎么有点象MSDN中“创建对象数组”里的代码呢?嘎嘎
你可以进行类似于下面的声明
dim mObj() as object
redim mobj(1,2,3,4,5,6,7,8,9)
然后挨个去set他们....
严格意义上的控件数组,是一维的,因为只有一个index熟悉么但是也可以用变量来动态产生控件,改一下楼上的例子:Private Sub Command1_Click()
Dim intX As Integer, intY As Integer
Dim txtNew(1 To 5, 1 To 2) As TextBox
For intY = 1 To 2
For intX = 1 To 5
Set txtNew(intX, intY) = Me.Controls.Add("VB.TextBox", "Cmd" & intX & "_" & intY)
txtNew(intX, intY).Move 600 * intX, 300 * intY, 600, 300
txtNew(intX, intY).Visible = True
Next intX
Next intY
End Sub