【发布时间】:2014-08-02 00:07:28
【问题描述】:
有没有办法增加同一个按键的一个按键事件和下一个按键事件之间的延迟?
我有一个应用程序,用户可以使用向下/向上键滚动图像。他们可以按下并释放,也可以保持按下状态。有时,当用户一直按住向上/向下键时,他们希望更快地滚动。 我相信一个按键事件和下一个按键事件之间的持续时间是由 Windows 控制的,所以假设我打开记事本并输入字母“a”并按住键,那么我看到的速度是基于一个参数 Windows我相信控制。
我可以在我的 C# 程序中更改运行时的速度吗?并且一旦用户关闭应用,就恢复到正常速度。
【问题讨论】:
-
这是由 Windows 和键盘驱动程序控制的。您可以使用您喜欢的时间间隔创建一个计时器,然后查看该键是否仍被按下,但我不希望每次都会收到一个新的按键事件。
-
对,所以我认为它仍然取决于windows设置的按键间隔
-
按键重复延迟由键盘内部的键盘控制器实现。修补它是完全不合理的,因为它会影响机器上的每个程序。意外的程序中止将使其永久失控。简单的解决方法是不依赖它。使用 KeyDown 和 KeyUp 事件并通过使用 KeyDown 启用的 Timer 获得重复,在 KeyUp 中禁用。您可以随意修改计时器的 Interval 属性。