按下键时未调用PictureBox.OnMouseDown?

时间:2014-03-12 21:39:40

标签: c# winforms

我继承了PictureBox以添加一些额外的功能。我正在处理鼠标,如下所示:

protected override void OnMouseDown(MouseEventArgs e)
{
    base.OnMouseDown(e);
}

现在,如果我按下一个键(例如'T')并同时点击鼠标,OnMouseDown 被调用!如果我不按一个键,它确实被称为。 发生了什么事?

当然我继承了PictureBox,但这种行为毫无意义。

更新

我发现这种情况发生在整个系统中。我忘了提到我正在使用触摸板(多点触控)。在控制面板中,我可以看到“Synaptics ClickPad V8.1”。我相信系统中有一些设置可以在打字时禁用鼠标/触控板。仍在寻找它。

2 个答案:

答案 0 :(得分:1)

有很多方法可以激发类似的东西,比如锁定线程,执行一些取消鼠标事件或提升/关闭CPU周期的操作。

我怀疑您已经在某处隐藏了一些事件,因此在该键事件结束时添加Application.DoEvents();并且它应该执行并发事件。

作为警告, DoEvents 主要用于特定情况,因为通常会导致滞后并且它不是真正的最佳方式,您应该找到一种方法来执行分离的事件/操作线程或者,可能使用辅助标志来识别合作任务。

答案 1 :(得分:0)

泽尔的回答here成功了。基本上,您需要在Windows 8中禁用点按延迟。然后它才有效!