在官方的Microsoft文档中,只有一个段落提到控件如何处理键盘(至less我能find): http://msdn.microsoft.com/en-us/library/cc189015(v=VS.95).aspx#inputting_text 文本input和控制 某些控件对自己处理的键盘事件做出反应。 例如,TextBox是一个控件,用于捕获并直观地表示通过使用键盘input的文本,它使用KeyUp和KeyDown以自己的逻辑捕获击键,然后在文本中引发自己的TextChanged事件实际上变了。 您通常仍然可以将KeyUp和KeyDown的处理程序添加到TextBox或用于处理文本input的任何相关控件。 但是,作为预期devise的一部分,控制可能不会响应通过关键事件指向的所有关键值。 行为是特定于每个控件。 作为一个例子,ButtonBase(Button的基类)处理KeyUp,以便它可以检查SPACEBAR或ENTER键,为了产生Click事件,它被认为相当于鼠标左键按下。 这个事件的处理是通过ButtonBase覆盖虚拟方法OnKeyUp来实现的,在它的实现中它设置了Handled = true。 结果是,在SPACEBAR的情况下侦听键事件的button的任何父母将不会收到其自己的处理程序已处理的事件。 另一个例子是TextBox。 有些键(如ARROW键)不被TextBox视为文本,而是被视为特定于控件UI行为,TextBox将这些事件事件标记为已处理。 自定义控件可以通过重写OnKeyDown / OnKeyUp来为关键事件实现自己的类似重写行为。 如果您的自定义控件处理特定的加速键,或者具有与为TextBox描述的场景类似的控件或焦点行为,则应该将此逻辑放在您自己的OnKeyDown / OnKeyUp覆盖中。 有没有更完整的参考资料? 例如在一个自动完成框中,你可以导航到build议上/下,并select一个按下input等等 肯定有一个更好的办法比聚焦每一个单一的控制和按键盘上的每一个键来找出:)
如何知道.keyup()是一个字符键(jQuery) $("input").keyup(function() { if (key is a character) { //such as ab A bc 5 3 2 $ # ^ ! ^ * # …etc not enter key or shift or Esc or space …etc /* Do stuff */ } });
我真正想知道的是这是硬件问题,还是软件问题。 我可以通过USB插入我的android手机到电脑,并作为一个硬件键盘。 我不想在电脑上安装任何东西,我希望Android的行为像标准的硬件。 编辑:澄清我想编写一个android的程序/库,使设备能够完全模拟一个普通的键盘,使操作系统报告它作为一个标准的键盘设备,它可以在BIOS或任何其他地方的键盘作品。