Выставить и поднять событие дочернего элемента управления в usercontrol в C#
Привет. У меня есть UserControl, который содержит текстовое поле. Я хотел получить доступ к событию textaged из текстового поля, но в свойствах события usercontrol я не вижу событий для текстового поля. Как я могу выставлять и обрабатывать определенные события дочерних элементов управления из общедоступного UserControl в Winforms с C#.
2 ответа
Решение
Вы можете открыть новое событие и передать любые подписки прямо в элемент управления, если хотите:
public class UserControl1 : UserControl
{
// private Button saveButton;
public event EventHandler SaveButtonClick
{
add { saveButton.Click += value; }
remove { saveButton.Click -= value; }
}
}
Представьте весь TextBox как открытое свойство в пользовательском элементе управления и подписывайтесь на его события так, как вы хотите.
Пример:
class myUserControl: UserControl {
private TextBox _myText;
public TextBox MyText { get {return _myText; } }
}
После этого вы можете подписаться на любое из его событий, например так:
theUserControl.MyText.WhatEverEvent += ...
Надеюсь это поможет!