我继承了PictureBox
以添加一些额外的功能。我正在处理鼠标,如下所示:
protected override void OnMouseDown(MouseEventArgs e)
{
base.OnMouseDown(e);
}
现在,如果我按下一个键(例如'T')并同时点击鼠标,OnMouseDown
不被调用!如果我不按一个键,它确实被称为。 发生了什么事?
当然我继承了PictureBox
,但这种行为毫无意义。
我发现这种情况发生在整个系统中。我忘了提到我正在使用触摸板(多点触控)。在控制面板中,我可以看到“Synaptics ClickPad V8.1”。我相信系统中有一些设置可以在打字时禁用鼠标/触控板。仍在寻找它。
答案 0 :(得分:1)
有很多方法可以激发类似的东西,比如锁定线程,执行一些取消鼠标事件或提升/关闭CPU周期的操作。
我怀疑您已经在某处隐藏了一些键事件,因此在该键事件结束时添加Application.DoEvents();
并且它应该执行并发事件。
作为警告, DoEvents 主要用于特定情况,因为通常会导致滞后并且它不是真正的最佳方式,您应该找到一种方法来执行分离的事件/操作线程或者,可能使用辅助标志来识别合作任务。
答案 1 :(得分:0)
泽尔的回答here成功了。基本上,您需要在Windows 8中禁用点按延迟。然后它才有效!