好的,这就是我所拥有的:
Do
x = x + 1
Dim myTxt As New TextBox
myTxt.Name = ("TbMat" & x.ToString())
myTxt.Location = New Point(13, 13 + (x * 37))
myTxt.Tag = "For DB"
myTxt.Visible = True
Button2.Location = New Point(13, 39 + (x * 37))
If x = 5 Then
Button1.Dispose()
End If
Me.Controls.Add(myTxt)
Me.Refresh()
Loop Until x >= 1
这是让我们通过点击按钮让用户添加文本框的临时方式。我是编程的新手,所以这可能是一个简单的修复,但这是我的问题...当用户添加文本框我希望第一个是“TbMat1”所以我会假设要求它获取信息我会例如,使用textbox1.text = TbMat1.text。当我这样做时,它说没有声明TbMat1,这很明显,因为它还没有被创建。
我需要帮助将新文本框中的信息提取到其他文本框中,稍后我会想出导出。感谢。
答案 0 :(得分:2)
创建控件时,您将其创建为myTxt
,这是它的对象引用。因此,在存在该代码块的过程中,这将起作用:
SomeOtherTB.Text = myTxt.Text
名称是just
名称,而不是对象引用或“句柄”。此外,一旦代码退出,该过程myTxt
超出范围,因为它是声明它的地方(Dim
或Private|Friend|Public
)。要在其他地方访问您的新控件:
SomeOtherTB.Text = Me.Controls("TbMat1") ' or "TbMat" & x.ToString()
如果需要,或者创建一个新的对象引用:
Friend myTB AS TextBox ' module level at least
myTb = Me.Controls("TbMat1")
如果你制作了很多,后者可能不实用。