通过表单更改Usercontrol的Textbox.Text值

时间:2014-09-02 03:38:44

标签: vb.net winforms user-controls

所以我在winforms上有一个包含文本框的usercontrol。我有一个表单,其中包含一个按钮,而不是usercontrol所在的表单。当我从另一个表单中单击按钮时,如何更改usercontrol的textbox.text数据?我使用的是VB.NET。

如果两者都是表单,我可以在button_click事件下编写类似的东西,因为VB.NET下的winforms控件的访问标识符是Friend ...

Form1.Textbox1.Text = "Hello"

但是,这并不适用于用户控件。我该怎么办?非常感谢你。

1 个答案:

答案 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