如果您有任务有解决方法,您应该尝试避免使用全局变量。例如,您可以从您添加它的Controls集合中检索您的文本框。你只需要一些东西来帮助你找到正确的文本框。
Dim tp = TabControl2.TabPages(TabControl2.TabPages.Count - 1)
Dim txtbox As New TextBox()
txtbox.Location = New Point(200, 0)
txtbox.Height = 20
txtbox.Width = 100
txtbox.Name = "MyImportantTextBox"
tp.Controls.Add(txtbox)
现在,当你想找回
Dim tp = TabControl2.TabPages(TabControl2.TabPages.Count - 1)
Dim textbox = tp.Controls.
OfType(Of TextBox).
FirstOrDefault(Function(x) x.Name = "MyImportantTextBox")
if textbox IsNot Nothing Then
label.Text = textbox.Text
End If
也有另一种简单的可能性,添加一个处理程序文本框TextChanged事件,当你在文本框输入内容反映在标签中的内容。
Dim tp = TabControl2.TabPages(TabControl2.TabPages.Count - 1)
Dim txtbox As New TextBox()
txtbox.Location = New Point(200, 0)
txtbox.Height = 20
txtbox.Width = 100
AddHandler txtbox.TextChanged, AddressOf OnMyTextBoxChange
tp.Controls.Add(txtbox)
然后添加一个事件处理程序,这样
Sub OnMyTextBoxChange(sender as Object, e as EventArgs)
Dim txtbox = DirectCast(sender, TextBox)
label.Text = txtbox.Text
End Sub
声明模块中的文本框,你就完成了!你不需要'Dim txtbox As New TextBox()'。当发现新名字变得困难或者使用线程时,全局变量在大型项目中不好。否则就没事了。 –
@γηράσκωδ'εετππλάδιδασκόμε:看起来他正在将文本框动态添加到最后一个标签页。据推测,他也是动态添加新标签页,所以全局变量不会工作得很好,除非它是一个文本框列表。 –