如何覆盖自定义控件事件?

时间:2013-02-18 11:09:59

标签: c# events gridview override

我创建了一个继承自GridView的自定义gridView类。

public class CustomGridView : GridView {}

它在footerRow中添加了一个文本框,我想直接在我的页面中管理此文本框的已更改事件,而不是在类中。

类似的东西:

public override void txtSearch_TextChanged(object sender, EventArgs e) { }

我怎么能这样做?

1 个答案:

答案 0 :(得分:2)

您必须向CustomGridView添加新事件,并在文本框的TextChanged事件的处理程序中提升该事件。

所以,在你的CustomGridView

public event EventHandler FooterTextChanged;

private void RaiseFooterTextChanged()
{
    var handler = FooterTextChanged;
    if(handler == null)
        return;

    handler(this, EventArgs.Empty);
}

public override void txtSearch_TextChanged(object sender, EventArgs e)
{
    RaiseFooterTextChanged();
}

在使用CustomGridView的课程中:

customGridView.FooterTextChanged += OnGridFooterTextChanged;