выставить и поднять событие дочернего элемента управления в usercontrol в c#

Привет. У меня есть UserControl, который содержит текстовое поле. Я хотел получить доступ к событию textchanged текстового поля, но в свойствах события usercontrol я не вижу событий для текстового поля. Как я могу предоставлять и обрабатывать определенные события дочерних элементов управления из общедоступного UserControl в Winforms с C#.

2 ответов


вы можете отобразить новое событие и передать любые подписки прямо в элемент управления, если хотите:

public class UserControl1 : UserControl 
{
    // private Button saveButton;

    public event EventHandler SaveButtonClick
    {
        add { saveButton.Click += value; }
        remove { saveButton.Click -= value; }
    }
}

выставьте все текстовое поле как общедоступное свойство в пользовательском управлении и подпишитесь на его события так, как вы хотите.
пример:

class myUserControl: UserControl { 
private TextBox _myText;
public TextBox MyText { get {return _myText; } }

}

после этого вы можете подписаться на любое из его событий, например:

theUserControl.MyText.WhatEverEvent += ... 

надеюсь, что это помогает!