.net Windows如何决定是触发鼠标点击还是单击?
我有一个带有一些复杂拖动功能的控件。它也可以点击 我发现有时单击(快速鼠标向下移动,不移动)会导致.net Windows如何决定是触发鼠标点击还是单击?,.net,windows,winforms,.net,Windows,Winforms,我有一个带有一些复杂拖动功能的控件。它也可以点击 我发现有时单击(快速鼠标向下移动,不移动)会导致OnMouseUp事件,有时会导致单击事件。这似乎取决于时间……如果我在MouseDown事件上放置断点,我会得到单击,否则我会(主要)得到OnMouseUp 那么Windows如何决定触发哪个事件呢 谢谢鼠标点击应该会触发这两个事件。有关详细信息,请参见,但(来自文档): 当按下和释放鼠标按钮时,所有Windows窗体控件都会以相同的顺序引发单击事件(无论是哪一个鼠标按钮),以下列表中为单个控件指
OnMouseUp
事件,有时会导致单击
事件。这似乎取决于时间……如果我在MouseDown
事件上放置断点,我会得到单击
,否则我会(主要)得到OnMouseUp
那么Windows如何决定触发哪个事件呢
谢谢鼠标点击应该会触发这两个事件。有关详细信息,请参见,但(来自文档): 当按下和释放鼠标按钮时,所有Windows窗体控件都会以相同的顺序引发单击事件(无论是哪一个鼠标按钮),以下列表中为单个控件指出的情况除外。以下列表显示了单击鼠标按钮引发的事件顺序: 鼠标下移事件 单击事件 鼠标点击事件 鼠标移动事件 请注意,某些控件具有不同的行为(记录在各个控件中),双击行为也有点不同(也有记录)
此外,在调试器中放置断点可能会导致消息处理行为偶尔变得有点奇怪。我建议使用
Debug.WriteLine
或类似的方法通过单个消息跟踪所有输出,而不是使用断点,如果您希望看到所有消息都按顺序处理。是的,它取决于时间。如果你点击的速度足够快,那么你会得到一个双击事件。您可能已经知道:)您可以关闭它,重置ControlStyles.StandardDoubleClick style.DoubleClick?那是你用双手点击的时候吗?说真的,它没有看到双击,我只是做了一次点击,然后看看哪个断点被击中。