zoukankan      html  css  js  c++  java
  • 检测TextBox的回车键事件

    事情是这样的,项目中使用了DotNetBar组件,其中一个界面使用了TextBoxX,并设置为多行输入。运行后发现这个输入框不接收回车事件。原因是DotNetBar把控件的回事事件变成了Tab事件,使得按回车可以在控件之间进行切换。但对于多行的TextBoxX,明显是要回车的,看来这是DotNetBar的一个BUG了(也许是一个未考虑到的应用场景)。既然它没有处理,我手动处理一下也行,也就是加一个事件几行代码的事情。于是有了下面的代码:

    private void txtContent_KeyDown(object sender, KeyEventArgs e)
    {
        
    if (e.KeyCode == Keys.Enter) && !e.Control && !e.Shift && !e.Alt)
        {
            e.Handled 
    = true;
            txtContent.AppendText(
    "\r\n");
        }
    }

    然后就杯具了,if中的代码不论怎么样都不执行。断点调试后才发现,这两个值e.KeyCode 和 Keys.Enter这两个值确实不相等,看来DotnetBar的控件在内部进行了一些处理。最后试了下面的方法才生效:

    if ((e.KeyCode == (Keys.Enter & ~Keys.MButton)) && !e.Control && !e.Shift && !e.Alt)

    心中无限感慨,人不能NB到连这样的参数也要修改!最后的完整的代码是:

    private void txtContent_KeyDown(object sender, KeyEventArgs e)
    {
        
    if ((e.KeyCode == (Keys.Enter & ~Keys.MButton)) && !e.Control && !e.Shift && !e.Alt)
        {
            e.Handled 
    = true;
            e.SuppressKeyPress 
    = true;
            txtContent.AppendText(
    "\r\n");
        }
    }
  • 相关阅读:
    STM32 IIC双机通信—— HAL库硬件IIC版
    利用 ST-LINK Utility软件下载程序
    STM32CubeMx的使用分享
    STM32 GPIO重映射(转)
    IIC 原理讲解
    STM32 软件模拟 IIC 代码,标准库、HAL库可用
    STM32 抢占优先级和响应优先级
    浅谈C中的malloc和free
    C语言-cout<<"123"<<"45"<<endl;
    VC6-Win7下VC++6.0打开多个工程的设置
  • 原文地址:https://www.cnblogs.com/qkhh/p/1846437.html
Copyright © 2011-2022 走看看