winforms - 在拖放过程中处理 KeyDown

标签 winforms drag-and-drop keydown keyevent

我需要在对我的控件进行拖放操作时(即在 DragEnter 和 DragLeave 之间)响应按键事件(O、C、G 键等,而不是修改键)。但是,在此阶段不会调用 KeyDown 事件。

我已经尝试选择我的控件并专门将焦点设置在 DragEnter 上,但这不起作用。

编辑:

Hans 的回答基本上是正确的,除了我必须使用 GetAsynchKeyState 来获得我想要的行为。

最佳答案

QueryContinueDrag 事件在拖动时引发来源。检查您感兴趣的键的状态将需要 pinvoke,该事件仅用于帮助识别 Escape 键和修改键状态更改。需要记住的是,这些键有任何特殊作用是非常不可发现的。

    [DllImport("user32.dll")]
    private static extern short GetKeyState(Keys key);

当按键按下时,它返回一个 < 0 的值。我不能说它一定能正常工作,但在我尝试时它看起来不错。

关于winforms - 在拖放过程中处理 KeyDown,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4383244/

相关文章:

jQuery 拖放到文本区域

java - 无法实现拖放; dragSetData 没有被调用

node.js - 我可以使用 karma 来测试拖放之类的页面交互吗?

c# - 如何在没有边框的窗体周围添加阴影?

c# - 关闭前的确认

c# - 关于纸牌游戏的建议

javascript - 如何确定可打印字符上是否发生了按键事件?

c# - Winforms TabControl 对齐问题

c# - C# 中用于系统键的 KeyDown 事件

javascript - SAPUI5处理对话框中的输入