Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/windows/16.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
Windows单击事件的低级触发器是什么_Windows_Winforms - Fatal编程技术网

Windows单击事件的低级触发器是什么

Windows单击事件的低级触发器是什么,windows,winforms,Windows,Winforms,此处记录了在Windows中触发鼠标单击的标准事件序列: 基本上是: 鼠标下移事件 单击事件 鼠标点击事件 鼠标移动事件 但是,我有一个控件,它通过捕获子控件上的事件(实现拖动)来改变事件序列。这意味着完整的序列可能不会执行,例如,当前我有一个按钮,可以看到MouseDown事件,但单击鼠标时没有MouseUp事件 因此问题是,到底是什么触发了低层次的点击?它是否需要一个MouseDown后跟一个MouseUp。一个MouseUp本身就足够了吗?还有其他注意事项吗?如果不实现给定的流程,许多应

此处记录了在Windows中触发鼠标单击的标准事件序列:

基本上是:

  • 鼠标下移事件
  • 单击事件
  • 鼠标点击事件
  • 鼠标移动事件
  • 但是,我有一个控件,它通过捕获子控件上的事件(实现拖动)来改变事件序列。这意味着完整的序列可能不会执行,例如,当前我有一个按钮,可以看到MouseDown事件,但单击鼠标时没有MouseUp事件


    因此问题是,到底是什么触发了低层次的点击?它是否需要一个
    MouseDown
    后跟一个
    MouseUp
    。一个
    MouseUp本身就足够了吗?还有其他注意事项吗?

    如果不实现给定的流程,许多应用程序将出现问题。想象一下,这个应用程序监听鼠标按下事件。@Andrey,我不是在问如何实现一个特定的序列。序列已经存在,我无法控制。我正在寻找底层发生的事情的细节,这样我就可以解决它。订单说明了一切:没有鼠标按下,你就无法点击。而且,点击发生在鼠标按下之前,所以它甚至不需要鼠标按下。@Brad Rem否。点击发生在鼠标按下之后。这是基于文档和经验。是的,你是对的:在收到MouseDown之前,Click不会启动,但同样的事实是,除非收到MouseDown,否则Click不会启动,所以必须这样做。我认为关键是,当你向下移动鼠标时,你的控件会捕获鼠标,这样当你按下鼠标时,它就可以向控件发送其他消息。如果您试图只使用MouseUp,则可能意味着其他控件(或无控件)捕获了鼠标。你试过操纵鼠标捕捉吗?我想知道这是否可能。