C#覆盖Winforms中的事件

时间:2017-04-27 21:20:57

标签: c# winforms events override

我需要在C#winforms app中为我的所有文本框添加一个事件。

我如何覆盖例如Enter事件,以便所有文本框默认具有此事件? 提前致谢

1 个答案:

答案 0 :(得分:3)

您可以从YourTextBox继承TextBox并覆盖OnEnter方法,为所有此类文本框提供默认行为。然后使用此控件而不是默认的TextBox控件:

public class YourTextBox : TextBox
{
    protected override void OnEnter(EventArgs e)
    {
        // do something here
        base.OnEnter(e);
    }
}

或者您可以将所有文本框订阅到同一个事件处理程序。您可以手动或以编程方式执行此操作。例如。如果您只对Form的顶级文本框感兴趣:

foreach (var textBox in Controls.OfType<TextBox>())
     textBox.Enter += YourEventHandler;