在触摸屏上按下并释放快速检测按钮

时间:2018-03-13 17:10:28

标签: c# button touch

在我的c#windows表单代码中,我希望在按下按钮(并执行操作)以及释放按钮(并执行其他操作)时检测到。

我知道MouseDown和MouseUp事件的存在以及Windows XP的一切都很好。

当微软推出手势和" PressAndHold"时,问题出现在Windows 7和电容式触摸屏上。 function:用户触摸屏幕几秒钟后,MouseDown事件将被接收。 (N.B.使用鼠标一切正常)。

如何在收到MouseDown事件之前避免这种令人讨厌的延迟?

我已经尝试使用GlobalAddAtom(" MicrosoftTabletPenServiceProperty")并且我有一点变化:我不再收到RightButton,而是收到了LeftButton,但总是在相同的时间之后。

我还尝试使用带有if(MouseButtons == MouseButtons.Left)的MouseHover事件但没有成功(它仅适用于鼠标,不适用于触摸)。

N.B。我需要让手势和按压功能激活表格中的其他控件。

2 个答案:

答案 0 :(得分:1)

我想我在Windows 7触摸屏上找到了一种方法:

我必须禁用PressAndHold并将按钮注册为触摸,因此我几乎立即为该按钮获取MouseDown事件,为所有其他控件保留手势。

TogglePressAndHold(btnMoveUp.Handle,false);

RegisterTouchWindow(btnMoveUp.Handle,0);

对于第一个函数,请参阅此MSDN文章:https://msdn.microsoft.com/en-us/library/ms812373.aspx

RegisterTouchWindow是User32.dll函数

希望能为别人提供一些帮助。如果它也适用于其他平台,请告诉我。

答案 1 :(得分:0)

您是否尝试过使用Control.Click Event