如何创建inheritance自TextBox的类

我想创建一个inheritanceTextBox的自定义TextBox类,并覆盖onKeyDown事件,以便在按下Enter键时生成Tabfunction。

这个问题有重复,但我发现的答案都没有意义,所以我想开一个新的讨论。

我不想从UserControlinheritance而是从TextBoxinheritance…这真的很难吗? 我似乎无法找到关于如何做到这一点的直接教程或示例。

像这样的东西:

public partial class CustomTextBox : TextBox { public CustomTextBox() { this.KeyDown += customKeyDown; } void customKeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) { SendKeys.Send("{TAB}"); } } } 

请记住,我对使用UserControls或CustomControls的经验很少,而且很久以前所以我忘记了关键的事情

你只需重写OnKeyDown事件处理程序,这里不需要UserControl

当在单行或多行文本框中按下ENTER键时,下面的类移动到下一个控件。 多行时,按SHIFT + ENTER可插入ENTER。

作为额外的奖励,令人讨厌的“叮”声被抑制(以最简单的方式,如果您不需要处理控件外的键,则效果很好)。

 namespace YourNameSpace { public class CustomTextBox : TextBox { protected override void OnKeyDown(KeyEventArgs e) { base.OnKeyDown(e); if (e.KeyCode == Keys.Enter && (!Multiline || Multiline && !e.Shift)) { SendKeys.Send("{TAB}"); // Removes "ding" sound by NOT passing the key down to container e.SuppressKeyPress = true; } } } }