【问题标题】:How to determine if Pressed key is Underscore Or Minus? C#如何确定按下的键是下划线还是减号? C#
【发布时间】:2016-05-09 17:32:30
【问题描述】:

问题是下划线和减号的键值都是189,键码是Keys.OemMinus。所以我无法检查按下的键是下划线还是减号。请帮忙。

private void Some_KeyDown(object sender, KeyEventArgs e)
{
       if(Pressed key is minus/dash)
       {
           MessageBox.Show("minus");
       }

       if(pressed key is underscore)
       {
          MessageBox.Show("underscore");
       }
}

【问题讨论】:

  • 你确定 asp.net 标签是相关的,而不是 WinForms 吗?在后一种情况下,请查看KeyEventArgs 类的Shift 和/或Modifiers 属性。

标签: c# winforms keyboard-events


【解决方案1】:

如果这是一个 WinForms 项目,请使用 KeyPress 事件而不是 KeyDown 事件:

private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
    if(e.KeyChar == '-')
    {
        MessageBox.Show("Minus");
    }
    if (e.KeyChar == '_')
    {
        MessageBox.Show("Underscore");
    }
}

【讨论】:

  • 嗯,事情需要在KeyDown事件下完成。
  • 为什么?请解释一下为什么要在 Keydown 中这样做?
  • 它的 dev express 树列表。我想根据按下的键在节点上移动。现在我认为这可以用 KeyPress 而不是 KeyDown 来完成,因为那里有可用的 KeyChar。
  • 我已经用 DevExpress 15.2 对此进行了测试,它按预期工作。请显示您的确切代码(更新问题)并说出您遇到的错误(编译器,运行时?)
猜你喜欢
  • 2017-05-13
  • 2015-09-18
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2010-10-14
  • 2011-08-01
  • 1970-01-01
  • 2018-01-13
相关资源
最近更新 更多