我已经加载了两个UserControl,如何在另一个加载的UserControl上更改TextBox文本属性。
答案 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
这是处理这种情况的几种方法之一。您尝试做的事情的具体细节通常决定了使用什么方法。