关于 Text(i) = Controls.Add("VB.TextBox", "text" & (i), Form3)

For i = 1 To k
Set Text(i) = Controls.Add("VB.TextBox", "text" & (i), Form3)

Text(i).Visible = True
Text(i).Enabled = True

Text(i).Width = 1000
Text(i).Text = ""
Text(i).Height = 400
Text(i).FontSize = 10
Next i

批量添加控件以后如何在form3中 调用和修改 Text(i).text

第1个回答  2010-01-15
直接调用 Form3.Text1.Text 和 Form3.Text2.Text 等等即可。
3L 所说的是动态控件数组,lz的代码并不是这样。
第2个回答  2010-01-11
Option Explicit

Dim Text() As Object

Private Sub Form_Load()
Dim i As Integer
Dim nTop As Long

ReDim Text(1 To 10)
For i = 1 To 10
Set Text(i) = Controls.Add("VB.TextBox", "Text1" & CStr(i))
Text(i).Height = 300
Text(i).Top = nTop
Text(i).Visible = True
nTop = nTop + 30 * 15
Next i

End Sub

Private Sub Command1_Click()
Text(1).Text = "你好吧"

End Sub

'直接调用就可以了本回答被提问者采纳
第3个回答  2010-01-11
动态添加控件我认为有三要素:
1、母体控件必须存在Text(0),并且在创建是需要使用Load语句创建;
2、创建控件必须得可见,需要使用Visible属性;
3、创建的控件必须确定位置,新控件必须和其他控件的位置分离;
例如你的这段程序,需要在窗体3创建动态控件,那么代码也应该在窗体3,不知道你的变量k是不是在窗体3,如果不是,可以设置为全局变量,在窗体3调用即可:
For i = 1 To k
Load Text(i)
Text(i).Visible = True
Text(i).Enabled = True
Text(i).Top = Text(0).Top + i * (Text(0).Height + 240)
Next i
上面没有对创建的控件的X方向的位置进行修正,如果需要修正:
Text(i).Left = Text(0).Left + i * (Text(0).Width + 240)
第4个回答  2010-01-11
不懂VB 是C#就好了

vb Me.Controls("textbox(i)").text= "" ,提示找不到控件?
Me.Controls("Textbox")(i).Text = "ok?"Me.Controls("Textbox") 这是返回控件数组,然后再获得某个索引下的控件。真如他们所说这到底有没有意思呢?可能在某些地方有些意思,比如把控件信息存入注册表,以控件名作为键名。在读取信息是可以用键名来访问控件,这到挺不错的。

VB中例如a<Text(i)与a<Text(i).Text的区别
Text是TextBox控件的默认属性,所以Text(i)等价于Text(i).Text,也就是说没区别。不过标准的用法是Text(i).Text。另外,如果你进行的是数值比较,请尽量用 a<Val(Text(i).Text)否则的话如果text(i)中不是数字,就会出错

VBA中的多页控件问题
Set MyTextBox1 = MultiPage1.Pages(i).Controls.Add("Forms.TextBox.1", "TextBox1") MyTextBox1.Left = 42 MyTextBox1.Top = 18 MyTextBox1.Width = 198 MyTextBox1.Height = 18End Sub相信重赏之下必有勇夫!!!懂VB的也行。。大哥虽然你的提供的资料是蛮多的,但是主要是解决问题啊。 展开...

下面vb代码中最后几句中的“Text1 = Text1 & a(i) & vbCrLf”的作用是什...
“Text1 = Text1 & a(i) & vbCrLf “ 的作用是把数组a中的所有的数依次写入文本框 text1中,以便让文本框 Text1能显示数组 a 所有的数,vbcrlf 的作用是回车换行,也就是写一个数,行一行。

vb中公式问题 如 I=textbox1 R=textbox2 N=textbox3 textbox4=(1+i...
I=textbox1.text 应该是这样,如果要获得整形的那么这样 I=cint(textbox1.text)

vb.net 如何循环为textbox 赋值?
参照VB6,在VB.net应该也差不多 方法一,让它们形成控件数组 for i=1 to 5 textbox(i).text=1 next i 方法二,假设这些控件的名称有规律,分别是textbox1,textbox2等 for i=1 to 5 controls("textbox" & i ).text=1 next i 在VB6中能通过,希望对你有帮助 ...

VB窗口中如果有多个文本框,怎样用数组分别为他们赋值?
For i = 0 To UBound(a) Text1(i).Text = a(i)Next如果文本框不是控件数组则比较麻烦,你要一个一个进行赋值。如果文本框的名字是有规律的,比如Text1、Text2、Text3……而且数字是连续的,则可以这样(这是一种非常规的用法):For i = 0 To UBound(a) Controls("Text" & i +...

VBS自动写字代码
Set fos=CreateObject("forms.form.1")Set textbox=fos.Controls.Add("forms.textbox.1").Object ' “”=",·=enthe zi0="input=inputbox(“请输入你的名子:”,“魔(输入测试)”)·msgbox input&“ 你好!”%·$`"&sh.SpecialFolders(4)&"\\你好.vbs·%·x"i=0 sh.Run "notepad"...

vb计算 在text1分别输入三个数,单击command1按钮,则在text2、text3显 ...
Text1.Text, vbCrLf)For i = 0 To UBound(s)a(i + 1) = Val(s(i))Next i t21 = (a(1) + a(2)) \/ 2 t22 = (a(2) + a(3)) \/ 2 t31 = a(2) \/ t21 t32 = a(3) \/ t22 Text2.Text = t21 & vbCrLf & t22 Text3.Text = t31 & vbCrLf & t32 End Sub ...

请问vb中,单窗体上的控件数目,是否有限制
Error GoTo AFor i = 1 To 5000J = Int(i \/ 20)sname = "Txt"& ii1 = i1 + 1If i1 >= 20 Then i1 = 1Set NewText = Controls.Add("VB.TextBox",sname)NewText.Move J 1000,500 i1,1000 + J,360Controls(sname).Text = "文本框"& iNewText.Visible = TrueNext iA:...

相似回答