如何创建继承自TextBox的类

2024-02-13

我想制作一个继承 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}");
        }
    }
}

请记住,我对使用用户控件或自定义控件的经验很少,而且那是很久以前的事了,所以我忘记了关键的事情


你只需覆盖OnKeyDown事件处理程序,不需要UserControl here.

当在单行或多行文本框中按 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;
            }
        }
    }
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何创建继承自TextBox的类 的相关文章

随机推荐

  • Spinner 的 RxBindings?

    我是新的 android 和 rxjava 我经历过很多使用 rxbindings 监听事件的例子 比如这个 RxView clicks b subscribe new Action1
  • Java,如何绘制不断变化的图形

    以前没有这样做过 所以显然我很糟糕 这里 当前鼠标位置周围的 64 像素在表单上绘制得稍大一些 问题是 它 有点 慢 而且我不知道从哪里开始修复 除此之外 我创建了一个线程 在完成后不断调用更新图形和一些类似文本的 fps 以真正显示绘制事
  • RabbitTemplate 接收并重新排队

    我想从队列接收消息并立即将它们出队 事实上我想模仿rabbitMQ管理控制台的行为 它可以接收消息并将其重新排队 所以我的问题是如何做到这一点 起初 我试图克隆消息并重新发送它们 但rabbitTemplate似乎无法将消息直接发送到队列
  • Heroku 登录错误:证书链中的自签名证书

    我正在尝试在 Mac 上使用 Heroku CLI 当我尝试使用 Heroku 登录名登录 Heroku 并提供我的凭据时 出现以下错误 错误 证书链中的自签名证书 我已多次尝试卸载并重新安装它 但仍然收到此错误 我该如何解决 由于我的组织
  • 传递任意大小的二维数组

    您好 我正在研究排序算法 为此我想制作一个简单的程序来从文本文件中获取整数数组 在这样做的同时 我遇到了一些关于将它们作为参数的数组和函数的麻烦和问题 这是我所做的 include
  • MySQL 中的复合主键性能缺陷

    我们有一个表 其复合主键由三个字段组成 在 MySQL 5 1 中 该表每秒有近 200 次插入和 200 次选择 表的大小约为 100 万行 并且还在不断增加 我的问题是 复合主键 是否会降低该表上的插入和选择的性能 我应该使用简单的自动
  • 正确实现不同类型但语义等效的两个对象的比较

    我发现了类似的问题 如何比较具有相似属性的两个截然不同的对象 https stackoverflow com questions 1725327 how to compare two distinctly different objects
  • 使用 shell 脚本从文件中提取唯一的行块

    从文件中提取行块时 我遇到了一些问题 考虑以下两个文件 File 1 1 20 abc this is test 1 perl RRP RRP 1 30 JEDI JEDIExportSuccess2 exec perl RRP RRP 1
  • 如何在 Jenkins 管道脚本中使用 source 命令

    我最近将 bash 执行命令重写到 Jenkins 管道中 旧的代码就像 source environment sh Build Test 现在我使用管道脚本来包装命令 如下所示 sh source environment sh Build
  • 使用捏合手势在运行时缩放 SCNNode

    我正在尝试使用捏合手势实时缩放和 SCNNode 这是我当前的代码 let pinchGestureRecognizer UIPinchGestureRecognizer target self action selector handle
  • 在一定时间内淡出/过渡顺风等级到其他等级?

    有没有办法设置bg red 300并将其淡出 过渡到bg transparent或超过 2 秒的不同 bg 类 或者我是否需要 javascript 我想要一个元素突出显示 然后在 2 秒后恢复正常 谢谢你 您可以使用配置文件创建自己的动画
  • Pip3安装模块在哪里?

    乌班图15 10 Python 3 4 3 姜戈 1 8 7 当我尝试import django在 python3 解释器中 它说ImportError No module named django 我知道 Django 1 8 7 已安装
  • 获取 #000 格式的背景颜色而不是 RGB [重复]

    这个问题在这里已经有答案了 使用此代码 我可以获得表中任何 TD 的 RGB 颜色 alert this css background color 结果是 RGB 0 255 0 jquery 是否可以获取 000 格式 或者我可以使用函数
  • Python 十六进制变量赋值

    我使用一个变量来存储由套接字发送的数据 当我在程序中分配它时 它可以工作 但是当我从文件中读取它时 它被视为字符串 Example data x31 x32 x33 print data Outputs 123 lt this is the
  • ShutDownListener 中的 TaskCanceledException

    目前我们看到很多TaskCanceledException被甩掉MS Internal ShutDownListener HandleShutDown 这个问题从 5 月中旬开始 可能与 Net 或 Windows 10 的某些更新有关 我
  • 减少 Azure 上传的文件大小

    我在 Azure 上有一个托管服务 每次我想放置包 cspkg 和 cscfg 文件 时总是需要很长时间 我的 cspkg 文件有 18 MB 有没有更好的上传方法 我的想法是将图像 样式等放入 Azure 上的存储中 并将我的 Web 应
  • WSH 脚本单元测试框架[关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 我正在寻找 WSH 脚本的单元测试框架 vbs wsf 而不是 VB6 VBA 除了这个项目 我找不到任
  • 如何在 Chrome 应用程序中显示 PDF 的数据 URI?

    我有一个从 JavaScript PDF 库 jsPDF 生成的数据 URI 似乎没问题 因为当我使用 console log 显示它并将其粘贴到浏览器 URL 字段时 它可以工作 但是 我无法让它在 Chrome 应用程序中显示 无论是在
  • 来自 PHAsset 的 NSURL

    我正在将我们的应用程序转换为使用 iOS8 的照片框架 ALAsset 框架显然是 iOS8 下的二等公民 我遇到的一个问题是我们的架构确实需要一个 NSURL 来表示媒体在 磁盘 上的位置 我们用它来将媒体上传到我们的服务器以进行进一步处
  • 如何创建继承自TextBox的类

    我想制作一个继承 TextBox 的自定义 TextBox 类 并重写 onKeyDown 事件 以便在按下 Enter 键时启用 Tab 功能 这个问题有重复项 但我发现没有一个答案有意义 所以我想开始一个新的讨论 我不想从 UserCo