如何将事件从一个类传递给子对象?

时间:2015-10-13 13:06:58

标签: c# winforms events override

我有一个名为TextBoxPlus的类,它继承自UserControl并拥有多个常规TextBox个实例,同时还可以扩展其功能。我的Windows窗体中有一个TextBoxPlus实例正在调用TextChanged事件。我遇到的问题是我希望它传递到TextChangedTextBox个实例之一的TextBoxPlus事件。我不想让TextBox公开,所以我很可能会看override,但我不知道如何做到这一点,因为这不起作用:

protected override void TextChanged(EventArgs e)
{
    this.textbox.TextChanged(e);
}

显然是由于TextChanged事件没有调用方法。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:2)

在包含类的事件上定义一个事件,该实现将其处理程序添加到包含的对象的事件中:

public event  EventHandler TextChanged
{
    add
    {
        textbox.TextChanged += value;
    }
    remove
    {
        textbox.TextChanged -= value;
    }
}