我需要在C#winforms app中为我的所有文本框添加一个事件。
我如何覆盖例如Enter
事件,以便所有文本框默认具有此事件?
提前致谢
答案 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;