Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/.net/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net Windows如何决定是触发鼠标点击还是单击?_.net_Windows_Winforms - Fatal编程技术网

.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?那是你用双手点击的时候吗?说真的,它没有看到双击,我只是做了一次点击,然后看看哪个断点被击中。