【发布时间】:2016-12-02 00:43:02
【问题描述】:
我想创建一个继承 TextBox 的自定义 TextBox 类 并在按下 Enter 键时覆盖 onKeyDown 事件以实现 Tab 功能。
这个问题有重复,但我发现没有一个答案有意义,所以我想重新讨论一下。
我不想从 UserControl 继承,而是从 TextBox 继承……这真的那么难吗?我似乎找不到有关如何执行此操作的简单教程或示例。
类似这样的:
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 方面经验很少,而且是很久以前的事了,所以我忘记了关键的事情
【问题讨论】:
-
查找覆盖关键字,我想你会得到你需要的
-
另外:不要称它为 UserControl(它是一种容器类型)。它将是一个自定义控件,即控件的子类
-
@SeanK 在单行
TextBox中,即使没有覆盖它也可以工作。但是对于多行TextBox,即使覆盖也无法正常工作。
标签: c# winforms user-controls