如果您有任務有解決方法,您應該嘗試避免使用全局變量。例如,您可以從您添加它的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()'。當發現新名字變得困難或者使用線程時,全局變量在大型項目中不好。否則就沒事了。 –
@γηράσκωδ'εετππλάδιδασκόμε:看起來他正在將文本框動態添加到最後一個標籤頁。據推測,他也是動態添加新標籤頁,所以全局變量不會工作得很好,除非它是一個文本框列表。 –