gpt4 book ai didi

c# - 如何创建继承自 TextBox 的类

转载 作者:太空宇宙 更新时间:2023-11-03 23:07:08 34 4
gpt4 key购买 nike

我想制作一个继承 TextBox 的自定义 TextBox 类并覆盖 onKeyDown 事件以在按下 Enter 键时启用 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 方面经验很少,而且那是很久以前的事了,所以我忘记了关键的事情

最佳答案

您只需覆盖 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;
}
}
}
}

关于c# - 如何创建继承自 TextBox 的类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40817975/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com