我的鼠标有问题。当我只点击一下时,它会偶尔双击。我知道这是鼠标的问题,我已联系制造商,仍在等待回复。但与此同时,我想知道是否有一种方法可以在很短的时间内(可能是1-10毫秒)内点击鼠标左键两次,并禁用第二次点击。
我大多知道如何使用钩子,所以这不是问题,我的主要问题是如何阻止事件发生,如果可能的话。
答案 0 :(得分:1)
有关如何防止处理鼠标消息的信息,请参阅MSDN中“LowLevelMouseProc回调函数”的文档: http://msdn.microsoft.com/en-us/library/windows/desktop/ms644986(v=vs.85).aspx 具体来说,它说:“如果钩子过程处理了消息,它可能会返回一个非零值,以防止系统将消息传递给钩子链的其余部分或目标窗口过程。”所以,如果你了解Windows钩子,你知道怎么做。
编辑:实际上,现在我想更多关于它,你不想丢弃任何事件。您只想将doubleclick事件转换为另一个左键按下事件。我相信你可以在钩子处理程序中完成它,它会工作。你试过吗?
答案 1 :(得分:0)
在C#的WinForms中,你编写了一个事件处理程序,涉及鼠标接收MouseEventArgs对象。在其中,您可以访问某些信息,例如点击它的次数。
protected void RowClicked(object sender, MouseEventArgs evt)
{
// Trigger it when the mouse was clicked only once
if( evt.Button.Clicks == 1 ) {
// ... more things ...
}
return;
}
其他GUI库还有其他可能性。也就是说,您的问题与GUI库无关。您必须在操作系统的配置选项中更改鼠标的灵敏度。例如,在Windows的控制面板中,您可以更改在单击和另一个单击之间传递的时间,以将其视为单击。在lUbuntu中,您可以在系统菜单>>中执行相同的操作。偏好设置>>键盘和鼠标。