在c#中调用我自己的事件代码和自定义事件代码

时间:2009-03-13 10:04:54

标签: c# events controls

我使用自定义的richtextbox控件创建了一个WinForms应用程序。

我在项目中将其称为Windows控件(dll文件)。在我的richtextbox程序中,我已经在其textchanged事件中编写了功能。

我希望仅在触发textchanged事件后才执行其他工作,或者在文本添加到文本框后以其他方式执行其他工作。像我想在text_changedevent中调用函数foo()之类的东西。它只调用foo并且无法处理底层的textchanged事件。

在C#中,我可以先处理内部的textchanged事件,然后查看我的文本更改事件吗?

想一想我为mytextbox_textchanged

编写代码的场景
private void txt_code_TextChanged(object sender, EventArgs e)
    {
        //some code which will always be called whenever textchanged event occurs.
    }

现在我在我的项目中继承了这个控件,说MyApp1。这里我有一个标签,我想显示文本框中包含的行数。所以我会写

private void my_inherited_txt_code_TextChanged(object sender, EventArgs e)
    {
        //code to update the label with my_inherited_txt_code.lines.length
    }

所以我的问题是,我首先想要调用txt_code_TextChanged事件,然后在my_inherited_txt_code_TextChanged中编写代码。通过编写

解决了这个问题
private void my_inherited_txt_code_TextChanged(object sender, EventArgs e)
    {
        base.OnTextChanged(e);
        MessageBox.Show("foo");
    }

2 个答案:

答案 0 :(得分:1)

你的意思是:

protected override void OnTextChanged(EventArgs e)
{
    base.OnTextChanged(e);
    // your code here...
}

答案 1 :(得分:0)

我无法理解为什么你不能从textchanged事件中调用一个方法? 你有任何错误或究竟发生了什么?