2种方法:1.先在窗体上放置一个控件 设置Index=0 Load Txt(nIndex)nIndex=1,2,3...nUnload txt(1,2...n)2. Private WithEvents oTxt As TextBoxPrivate Sub Command2_Click()
Set oTxt = Me.Controls.Add("VB.TextBox", "AddTxt") With oTxt .Move 0, 0, 1200, 120 .Visible = True End With End SubPrivate Sub Command3_Click() Me.Controls.Remove ("addtxt") End SubPrivate Sub oTxt_Click() MsgBox oTxt.Name End Sub
Private Sub Form_Load()Dim label() As label Dim i As Integer For i = 1 To 10
ReDim label(i) Set label(i) = Controls.Add("vb.label", "lblKey" & i, Form1)
label(i).Move 100, (i - 1) * 350 + 10, 1000, 350 label(i).Caption = "label(" & i & ")"
label(i).Visible = True
Next iEnd Sub
我的代码是这样写的,但是不知为什么llb(2)在窗体上没显示,请教各位 Dim llb() As Label Dim i As Integer For i = 1 To 2 ReDim llb(i)Set llb(i) = Controls.Add("VB.Label", "llb" & i, frm1) With llb(i) .Visible = True .Width = 2000 .Top = 100 * i .Left = 100 * i .Caption = "dgf" & i End WithNext i
不知是不是你打错了: 呵呵Dim llb() As Label Dim i As Integer Private Sub Form_Load() For i = 1 To 2 ReDim llb(i)Set llb(i) = Controls.Add("VB.Label", "llb" & i, Form1) With llb(i) .Visible = True .Width = 2000 .Top = 100 * i .Left = 100 * i .Caption = "dgf" & i End WithNext i End Sub
以后在程序中 Load label1(i)即可
例如:label1(3).Container =form1
设置Index=0
Load Txt(nIndex)nIndex=1,2,3...nUnload txt(1,2...n)2.
Private WithEvents oTxt As TextBoxPrivate Sub Command2_Click()
Set oTxt = Me.Controls.Add("VB.TextBox", "AddTxt")
With oTxt
.Move 0, 0, 1200, 120
.Visible = True
End With
End SubPrivate Sub Command3_Click()
Me.Controls.Remove ("addtxt")
End SubPrivate Sub oTxt_Click()
MsgBox oTxt.Name
End Sub
首先添加一个commandbutton按钮控件
然后把commandbutton的index属性改为数组的下标(例如:1 ,默认为空)
然后这个commandbutton就变成commandbutton(1)了。调用该控件的时候直接用就行了,例如:commandbutton(1)_click
Dim i As Integer For i = 1 To 10
ReDim label(i)
Set label(i) = Controls.Add("vb.label", "lblKey" & i, Form1)
label(i).Move 100, (i - 1) * 350 + 10, 1000, 350
label(i).Caption = "label(" & i & ")"
label(i).Visible = True
Next iEnd Sub
Dim llb() As Label
Dim i As Integer
For i = 1 To 2
ReDim llb(i)Set llb(i) = Controls.Add("VB.Label", "llb" & i, frm1)
With llb(i)
.Visible = True
.Width = 2000
.Top = 100 * i
.Left = 100 * i
.Caption = "dgf" & i
End WithNext i
呵呵Dim llb() As Label
Dim i As Integer
Private Sub Form_Load()
For i = 1 To 2
ReDim llb(i)Set llb(i) = Controls.Add("VB.Label", "llb" & i, Form1)
With llb(i)
.Visible = True
.Width = 2000
.Top = 100 * i
.Left = 100 * i
.Caption = "dgf" & i
End WithNext i
End Sub
with 里面 补一句
.ZOrder 0
试试看
label(1)能成为第一个实例,然后就没有继承了。
一定要用前面控件数组的方法才行,通过INDEX置0来创建一个数组。
你这段代码我以前在书上也看过,照着源码敲都不行。
这种CREATE方法是典型的Delphi方式,呵呵!