[英]Vb.Net - Accessing text in controls on another form
我對vb.net相當陌生,希望能夠從另一個打開的表單訪問該值(例如,文本框上的.text)。 在我的應用程序中,我從主窗體中打開一個窗體,並且當我嘗試訪問主窗體上的控件中的文本時,無法在控件上看到.text值。
我可以很好地遍歷主窗體上的所有控件,但是當我想查看實際值時,所有控件都是空的。 我的控件(例如文本框和組合框)位於選項卡控件和組框的內部。
有沒有辦法使其他打開的表單中的所有.text或值都可用?
這是我遍歷主窗體上的控件的方式。
Try
For Each Tp As TabPage In UserData.UserTabControl.TabPages
'Name of Tabcontrol is UserTabcontrol
For Each gbx As GroupBox In Tp.Controls
For Each ctrl As Control In gbx.Controls
If ctrl.Name = "UserName" Then
MsgBox(UserData.UserName.Text) 'Messagebox here is empty
End If
Next ctrl
Next gbx
Next Tp
Me.Close()
Catch ex As Exception
MsgBox(ex.Message)
End Try
提前致謝。 克里斯
從給出的示例中,您已經可以訪問對Control
的引用。 無需返回到Form
並嘗試將控件作為Form
的屬性來訪問,您只需投射引用並直接調用其Text
屬性即可。
If ctrl.Name = "UserName" Then
MsgBox(DirectCast(ctrl, TextBox).Text) 'Assuming your UserName control is a TextBox
End If
如果要引用打開的窗體上的控件,則將其稱為Form1:首先將Form1屬性或變量添加到調用窗體:
Public Class Form2
Public Property f1 As Form1
...
Private Sub DoSomething()
MsgBox("Here's some text from Form1: " & f1.Textbox1.Text)
End Sub
End Class
在被調用方表單中,將Form2屬性設置為表單對象:
Public Class Form1
Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
Form2.f1 = Me
Form2.ShowDialog() ' or Form2.Show()
End Sub
End Class
然后,您可以使用f1屬性引用Form2中的所有Form1對象。
通過此命令,我可以用另一種形式更改控制量。
My.Forms.myForm.labelControl.Text = "bela"
請嘗試這個:
MsgBox(My.Forms.UserData.UserName.Text)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.