Выставить и поднять событие дочернего элемента управления в 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 += ... 

Надеюсь это поможет!

Другие вопросы по тегам