所以我在winforms上有一个包含文本框的usercontrol。我有一个表单,其中包含一个按钮,而不是usercontrol所在的表单。当我从另一个表单中单击按钮时,如何更改usercontrol的textbox.text数据?我使用的是VB.NET。
如果两者都是表单,我可以在button_click事件下编写类似的东西,因为VB.NET下的winforms控件的访问标识符是Friend ...
Form1.Textbox1.Text = "Hello"
但是,这并不适用于用户控件。我该怎么办?非常感谢你。
答案 0 :(得分:0)
您可以在ur usercontrol中定义Text属性,该属性最初处理您的textbox.text属性。
Public Class MyUserControl
[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)] _
[Browsable(True)] _
Public Shadow Property Text As String
Get
Return textBox1.Text
End Get
Set(Value As String)
textBox1.Text = Value
End Set
End Property
End Class
现在您可以像这样设置文本
MyUserControl1.Text = "This is My Text"
还在UserControl放置的表单中创建另一个属性
Public Class Form1
Public Property UserControlText As String
Get
Return MyUserControl1.Text
End Get
Set(Value As String)
MyUserControl1.Text = Value
End Set
End Property
End Class
您可以使用此代码
从其他表单访问该控件Form1 frmForm = DirectCast(Application.OpenForms("Form1"), Form1)
If frmForm IsNot Nothing Then
frmForm.UserControlText = "Value from different form"
End If