vb关于动态添加的控件如何调用

正如上面的代码,通过点击command1生成id为newtext和一个序号的textbox,比如说我点了三下,就生成了三个。然后我想点击command2用msgbox输出... 正如上面的代码,通过点击command1生成id为newtext和一个序号的textbox,比如说我点了三下,就生成了三个。然后我想点击command2用msgbox输出newtext1.text,如果写成 msgbox newtext1.text可是不行。错误代码42,要求对象。如果写成我图中的代码那么输出的是newtext3.text,因为他是最后生成的。
想请教大神如何能完成我的想法。我也想过控件数组,不过如果我点击很多下控件数组可能就不够了,所以才考虑动态添加。求大神帮帮忙!
Private j As Integer
Private WithEvents txt As TextBox
Private Sub Command1_Click()
Dim q As TextBox
j = j + 1
If txt Is Nothing Then
Set txt = Me.Controls.Add("vb.textbox", "newtext" & j)
txt.Move Form1.Left + 200, Form1.Top + 200
MsgBox "1"
MsgBox "newtext" & j
Else
Set q = txt
MsgBox "2"
Set txt = Me.Controls.Add("vb.textbox", "newtext" & j)
txt.Move q.Left, q.Top + q.Height + 200
End If
txt.Text = "成功了!" & j
txt.Visible = True
End Sub
Private Sub Command2_Click()
MsgBox txt.text
End Sub
展开
 我来答
tianqing20wen

2015-08-09 · TA获得超过2.4万个赞
知道大有可为答主
回答量:8226
采纳率:88%
帮助的人:5100万
展开全部
控件数组 可以有32768个控件元素 你可以点3万多下 放心使用不会不够,实在不够,换个控件名称不就又有3万多个了么
追问
那我不是需要事先在窗体上添加么,我不想事先添加,因为我不知道我会点多少下,真点3w多下,事先添3w多个也麻烦啊
追答
添加一个textbox控件即可 index属性设置为0 

Dim i As Integer
Private Sub Command1_Click()
i = i + 1
Load Text1(i)
Text1(i).Visible = True
Text1(i).Top = Text1(i - 1).Top + Text1(i).Height
Text1(i).Text = Now
End Sub
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式