问题标签 [keydown]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
jquery - 如何从使用键盘命令的功能中排除表单/输入?
我正在使用 jQuery scrollTo 插件和 keydown 事件来使用 J 和 K 键水平滚动窗口。这很好用,但是,我在页面上有表单输入,所以我想在输入集中时禁用滚动行为。我的代码如下:
c# - 基本 WinForm KeyDown 事件处理
我正在使用 WinForms。我KeyDown
为主窗体的事件创建了一个事件处理程序,从而调用了按钮的Click
事件处理程序。
调用的Click
事件处理程序取决于按下的特定键。如果用户单击按钮而不是使用键,然后随后尝试使用键,则键(例如向下箭头)充当制表符循环,改变表单上每个按钮控件之间的焦点(而不是执行Keydown 处理程序)。
有任何想法吗 ?
c# - 在 C# 中处理按键
我正在制作一个游戏,我有一个名为 MainCharacter 的类,它首先初始化主角(在图片框中),然后我有一个 KeyDown 事件来处理移动。在那个事件中,如果我按下箭头键,我就能够处理角色的移动,我什至做了一个基于计时器的移动动画,让它看起来更流畅。
但是,KeyDown 事件的问题是每次按下键都会触发,这意味着如果我按住箭头键以使角色继续向一个方向移动,则重复触发事件,这意味着角色像鱼雷一样在屏幕上运行,因为事件的触发速度与计算机可以处理的一样快。
这就是我决定使用 KeyPress 事件的原因,这样当我按住键时,角色会以稳定的速度向指定方向移动。但是,KeyPress 事件无法处理箭头键,这就是为什么我必须在主窗体中重写 ProcessDialogKey 方法。但是如果我在主窗体中覆盖它,那么每次我按下箭头键时都会触发该事件,即使我不在游戏中,但例如在主菜单或其他任何地方。此外,我认为这将是一个不好的做法,如果我试图通过跨类来编程东西这么多。
那么,有没有其他方法可以让我在 MainCharacter 类中的箭头上处理 KeyPress 事件而不影响其他类?或者我是否有机会继续使用我已经工作的 KeyDown 事件,并使其在按住键时不会重复触发?请记住,我想要实现的是当我按住我的键时我的角色可以流畅地移动。到目前为止,如果我只按一次它就可以正常工作,但通常人们在朝一个方向行走时会按住键。
c# - DataGridView keydown 事件在 C# 中不起作用
当我在单元格内编辑文本时,DataGridView keydown 事件不起作用。
我正在分配快捷键Alt+S来保存数据,当单元格未处于编辑模式时它可以工作,但如果它处于编辑模式,则下面的代码不起作用
c# - KeyDown 事件不适用于 PrintScreen 键
我正在使用 C# windows 应用程序
我正在检查哪个键,用户按下了键盘。我已经检查了所有键,但在 printScreen 的情况下它不起作用
那么如何检测PrintScreenKey
events - jqgrid将keydown事件绑定到单元格
我有一个像这样的网格
选择单元格时,我想将 keydown 事件绑定到单元格,
但我无法触发事件。
这里有什么问题?
.net - 检测箭头键 - 整个窗口的 KeyDown
我有一个 WinForms 表单 (C#/.Net),它包含一个 PictureBox、MenuStrip、Panel 和两个 Button 控件。
我需要为整个窗口的箭头键检测 KeyDown 事件;即,当窗口位于前台时,无论哪个子控件具有焦点,我都需要知道何时按下箭头键并在发生时执行一些代码。
我不想为每个控件附加一个事件处理程序。有没有更好的办法?我该怎么做?
编辑:按照下面的答案建议使用 KeyPreview,我能够检测到其他键。无法检测箭头键。只有当我的表单中的按钮被禁用时,我才能检测到箭头键。否则,他们会来回关注焦点而不触发事件。如何检测表单上带有按钮的箭头键?
winforms - 在拖放期间处理 KeyDown
我需要响应 keydown 事件(O、C、G 键等,而不是修饰键),同时在我的控件上进行 Drag+Drop 操作(即在 DragEnter 和 DragLeave 之间)。但是,在此阶段不调用 KeyDown 事件。
我尝试选择我的控件并专门将焦点设置在 DragEnter 上,但这不起作用。
编辑:
Hans 的回答基本上是正确的,除了我必须使用 GetAsynchKeyState 来获得我想要的行为。
javascript - 是否可以在页面中使用两个键以及鼠标滚轮来禁用缩放?
我想禁用缩放,无论是所有浏览器中的Ctrl+ -/+还是Ctrl+ 滚轮。我尝试使用链接中给出的代码。我还尝试Ctrl使用以下代码禁用密钥:
但它不起作用。我实际上不想提醒用户缩放被禁用,所以我不能使用alert()
上面的代码。
有什么建议么?