VB.Net WinForms UserControl - PullRequest
       0

VB.Net WinForms UserControl

0 голосов
/ 30 ноября 2011

У меня уже есть два пользовательских элемента управления, как изменить свойство текста TextBox в пользовательском элементе управления из другого загруженного.

1 Ответ

2 голосов
/ 30 ноября 2011

Допустим, ваши пользовательские элементы управления называются 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

В событии загрузки формы Добавьте обработчик для созданного вами события:

 AddHandler UserControl1.SomePropertyUpdated, AddressOf UpdateTextBoxes

В закрытом событии формы удалите обработчик для события:

RemoveHandler UserControl1.SomePropertyUpdated, AddressOf UpdateTextBoxes

Это один из немногих способов справиться с ситуацией. Специфика того, что вы пытаетесь сделать, обычно определяет, какой метод использовать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...