VB2005编程中,有11个TextBox控件,TextBox1=2004,点按钮以后剩下的TextBox依次加1,直到2014。

在VB6.0中,写为Private Sub Command3_Click() For i = 1 To 11 TxtYear(i).Text = TxtYear(1).Text + i - 1 Next iEnd Sub可以实现,但是在VS2005里面这样写会出错,为什么呢?应该怎么写?还有,最重要的是,怎么弄TextBox控件组,用TextBox(i)来循环赋值啊???

一种规范的方法,就是创建ArrayList类的对象,从而实现控件数组:
代码如下:

Public Class Form1
Private TextBoxArray As New ArrayList

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
TextBoxArray(0).text = "文本框控件数组1"
TextBoxArray(1).text = "文本框控件数组2"
TextBoxArray(2).text = "文本框控件数组3"
End Sub

'自定义过程
Private Sub BiuldTextBoxArray()
TextBoxArray.Add(TextBox1)
TextBoxArray.Add(TextBox2)
TextBoxArray.Add(TextBox3)
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call BiuldTextBoxArray()
End Sub
End Class

方法二,我自己想了个容易理解和记忆的方法,估计内存开销稍微大一些:
Public Class Form1
Private MyText1(3) As TextBox '声明对象变量

Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
'这样就可以使用数组形式的控件对象了
Dim i As Integer
For i = 1 To 3
MyText1(i).Text = i
Next
End Sub

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Call BiuldControls() '调用自定义过程
End Sub

'自定义过程--将声明的对象与控件建立联系
Private Sub BiuldControls()
MyText1(1) = TextBox1
MyText1(2) = TextBox2
MyText1(3) = TextBox3
End Sub

End Class
温馨提示:内容为网友见解,仅供参考
第1个回答  2014-05-20
用Controls集合
比如 For i = 1 To 3
Me.Controls("TextBox" & i).Text = i.ToString
Next

VB2005编程中,有11个TextBox控件,TextBox1=2004,点按钮以后剩下的Text...
TextBoxArray(0).text = "文本框控件数组1"TextBoxArray(1).text = "文本框控件数组2"TextBoxArray(2).text = "文本框控件数组3"End Sub '自定义过程 Private Sub BiuldTextBoxArray()TextBoxArray.Add(TextBox1)TextBoxArray.Add(TextBox2)TextBoxArray.Add(TextBox3)End Sub Private Sub ...

...box后面的数字弄成变量,比如我放置了10个textbox,分别为te
声明一个文本框对象组,然后再启动窗体过程中,完成一一对应:Public Class Form1 Private MyTextBox(10) As TextBox Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load MyTextBox(1) = TextBox1 : MyTextBox(2) = TextBox2 : MyTe...

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

vb2005如何实现文本框中每输入4个数字插入1个空格
Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged Dim intLength As Integer intLength = Len(TextBox1.Text)If (intLength Mod 5) = 4 Then TextBox1.Text = TextBox1.Text & " "TextBox1.SelectionStart = Le...

VB.NET2005怎么在控件中一条一条的显示数据表的记录
记录住当前显示的row(行)eg:你的查询保存 datatable1 第一条时,我们就来个 dim dtrow as datarow=datatable.rows(0)textbox1.text=dtrow.item("字段名")'...都是如此 当然也是可能绑定的 CurrencyManager 用于管理显示的行数 textbox.DataBindings.add("属性",data,"字段")...

vb2005 --textbox的旋转--问题
二、利用picturebox(而不是textbox)控件显示,完全可以满足你的要求,请参考。1.在窗体内加入pciture1,command1控件,然后在代码区复制下面代码:'===窗体代码=== Option Explicit Private Sub cmdDraw_Click()Picture1.Cls Dim i As Integer Picture1.ForeColor = vbRed DrawRotatedText Picture...

VB中如何让几十个TEXTBOX中只能输入数字,小数点,进行计算用,
用控件数组,如果是点击按钮就判断的话就用for循环来判断,例如先在窗体上放置一个Text1,然后复制它再粘贴到同一个窗体上,当提示是否创建控件数组时选择是,再复制三次,这样窗体上就有5个文本框了,text1就变成了Text1(0),Text1(1),Text1(2),Text1(3),Text1(4),添加一个确定按钮,写...

有关VB中TextBox控件的问题
更简单的办法,先声明一个常数,包含你限制输入的字符,在用户键入时做判断用户输入的是否在其中 Const xStr As String = "0123456789" '如果想限制其他的字符就都写进这里,如新身份证号中会有字母x,把x加进来,用户就只能输入数字和x了 Private Sub Text1_KeyPress(KeyAscii As Integer)KeyAscii =...

vb如何令 textbox中输入的文字点击按钮后导入listbox中?
直接使用textbox 的additem方法就可以了。先在textbox中输入文字,然后点击命令按钮,就可以将文本框的内容作为一条新记录添加到listbox中。private sub confirm_click()if len(text1.text)>0 then listbox1.additem text1.text end if end sub ...

VB程序设计中,有10个分数,怎样输入一个除去最大值、最小值,求平均值...
先在窗体上放一个text1,在界面将text1的index属性值设为0,这样我们就创建了一个textbox控件数组,用复制粘贴的办法再添加9个成员 再在窗体上放3个按纽控件,代码如下:Option Explicit: Dim a(9) As Integer, s As Double, max As Integer, min As Integer Private Sub Command1_Click()a(0)...

相似回答