【问题标题】:KeyPress event not responding to some keys (up, down, left, right, home...)KeyPress 事件未响应某些键(上、下、左、右、主页...)
【发布时间】:2011-12-14 21:29:48
【问题描述】:

我有一个 Windows 窗体和一个 OnKeyPress 函数。我也打开了 KeyPreview。

该功能对除上、下、左、右、home、pgdown、end 等之外的大多数键都有响应...

就像每当我按下这些键时,它不会将它们发送到表单,它只是在按钮和其他控件之间切换。

有谁遇到过这种情况可以帮忙吗?

【问题讨论】:

  • 按设计。覆盖 ProcessCmdKey() 方法以查看这些击键。
  • 你试过OnKeyUp还是OnKeyDown?
  • 您是否有您所拥有的代码 sn-p 也许您没有捕获正确的关键代码..

标签: c# winforms keypress


【解决方案1】:

来自MSDN

KeyPress 事件不是由非字符键引发的;但是,非字符键确实会引发 KeyDown 和 KeyUp 事件。

【讨论】:

  • 如果需要将键码转换为通常属于 KeyPress 一部分的字符,那么按顺序处理混合不同类型击键的最简洁方法是什么?
  • 对,但是上/下/左/右都返回 KeyCode 为 18 是否有原因?
  • @supercat,我不确定我是否理解您的问题。你到底是什么意思?
  • 前段时间我尝试编写一个终端仿真风格的程序,它应该发送字符以响应箭头键。我最终从 KeyPress 发送了非箭头击键,从 KeyDown 发送了箭头,但这看起来真的很丑陋,因为我不确定 KeyPress 和 KeyDown 事件是否总是相对于彼此进行排序。
  • 说明 - 我有函数“private void Form_KeyDown(Object sender, KeyEventArgs e)”。但是每当我按下箭头键时,e.KeyValue 总是 18。 (为 home、pgdown 和其余部分提供不同的值,这很好) 编辑:Enter 键也是如此。每当他被按下时,e.KeyValue 也是 18...
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-06-12
  • 1970-01-01
相关资源
最近更新 更多