VB.Net WinForms UserControl

时间:2011-11-30 10:05:50

标签: vb.net user-controls

我已经加载了两个UserControl,如何在另一个加载的UserControl上更改TextBox文本属性。

1 个答案:

答案 0 :(得分:2)

假设您的用户控件名为UserControl1和UserControl2。除非UserControl1引用UserControl2,否则它不能直接对其进行更改。在这种情况下,一种解决方案是允许表单或父控件处理进行更改,方法是向UserControl1添加一个事件并在表单上处理它。

在UserControl1中:

'Define an Event the form can handle at the class level
Public Event SomePropertyUpdated()

然后以你需要它的任何方法,当你想要改变另一个控件上的文本框时,提升你的事件:

RaiseEvent SomePropertyUpdated()

表格形式:

 'The sub that is called when the second control needs updated
 Public Sub UpdateTextBoxes()
      UserControl2.Textbox1.text = userControl1.Property
 End Sub

在表单的load事件中为您创建的事件添加处理程序:

 AddHandler UserControl1.SomePropertyUpdated, AddressOf UpdateTextBoxes

在表单的已关闭事件中,删除事件的处理程序:

RemoveHandler UserControl1.SomePropertyUpdated, AddressOf UpdateTextBoxes

这是处理这种情况的几种方法之一。您尝试做的事情的具体细节通常决定了使用什么方法。