Windows如何决定是否触发MouseUp或Click?

我有一个复杂的拖动function控制。 它也是可点击的。

我发现有时点击(快速鼠标下移,没有移动)会导致OnMouseUp事件,有时是Click事件。 这似乎是时间依赖的…如果我把断点的MouseDown事件,我得到Click ,否则我(主要) OnMouseUp

那么Windows如何决定触发哪个事件呢?

谢谢

鼠标点击应该触发这两个事件。 有关详细信息,请参阅Windows窗体中的鼠标事件 ,但是(从文档):

所有Windows窗体控件按下并释放鼠标按钮时(不管鼠标按下哪个按钮),按相同的顺序提高点击事件,除了以下列出的各个控件的注释。 以下列表显示了单个鼠标按钮单击事件的顺序:

MouseDown事件。

点击事件。

MouseClick事件。

MouseUp事件。

请注意,某些控件具有不同的行为(记录在单独的控件中),并且双击行为也有点不同(也记录在MSDN上 )。

另外 – 在调试器中添加断点可能会导致消息处理行为偶尔会变得有点奇怪。 我建议使用Debug.WriteLine或类似的方法来跟踪所有的输出通过单个消息,而不是使用断点,如果你想看到所有的消息按顺序处理。