Windows 窗体中的鼠标事件

技术文章 专栏收录该内容
9 篇文章 0 订阅

标准单击事件行为

如 果要以正确顺序处理鼠标单击事件,需要知道在 Windows 窗体控件中单击事件的引发顺序。除对下面列表中的个别控件另有说明外,当按下并释放鼠标按钮(无论哪个按钮)时,所有 Windows 窗体控件都会以相同顺序引发单击事件。下面列表显示单击一次鼠标按钮所引发事件的顺序:

  1. MouseDown 事件。

  2. Click 事件。

  3. MouseClick 事件。

  4. MouseUp 事件。

以下是双击鼠标按钮所引发事件的顺序:

  1. MouseDown 事件。

  2. Click 事件。

  3. MouseClick 事件。

  4. MouseUp 事件。

  5. MouseDown 事件。

  6. DoubleClick 事件。(这可能有所不同,具体取决于相关控件是否将 StandardDoubleClick 样式位设为 true。有关如何设置 ControlStyles 位的更多信息,请参见 SetStyle 方法。)

  7. MouseDoubleClick 事件。

  8. MouseUp 事件。

有关阐释鼠标单击事件顺序的代码示例,请参见如何:在 Windows 窗体控件中处理用户输入事件

个别控件

下列控件不符合标准的鼠标单击事件行为:

  • ButtonCheckBoxComboBoxRadioButton 控件

    Note注意

    对于 ComboBox 控件,如果用户单击编辑字段、按钮或列表中的项,则发生下面详细说明的事件行为。

    • 单击左键:ClickMouseClick

    • 单击右键:不引发任何单击事件

    • 双击左键:ClickMouseClickClickMouseClick

    • 双击右键:不引发任何单击事件

  • TextBoxRichTextBoxListBoxMaskedTextBoxCheckedListBox 控件

    Note注意

    当用户单击这些控件内的任何位置时,发生下面详细说明的事件行为。

    • 单击左键:ClickMouseClick

    • 单击右键:不引发任何单击事件

    • 双击左键:ClickMouseClickDoubleClickMouseDoubleClick

    • 双击右键:不引发任何单击事件

  • ListView 控件

    Note注意

    只有当用户单击 ListView 控件中的项时,才会发生下面详细说明的事件行为。单击控件上的任何其他位置都不会引发任何事件。除下面所描述的事件外,还有 BeforeLabelEditAfterLabelEdit 事件,如果要对 ListView 控件进行验证,则您可能会用到这两个事件。

    • 单击左键:ClickMouseClick

    • 单击右键:ClickMouseClick

    • 双击左键:ClickMouseClickDoubleClickMouseDoubleClick

    • 双击右键:ClickMouseClickDoubleClickMouseDoubleClick

  • TreeView 控件

    Note注意

    只有当用户在 TreeView 控件中单击项本身或项的右侧时,才会发生下面详细说明的事件行为。单击控件上的任何其他位置都不会引发任何事件。除下面描述的事件外,还有 BeforeCheckBeforeSelectBeforeLabelEditAfterSelectAfterCheckAfterLabelEdit 事件,如果要对 TreeView 控件进行验证,则您可能会用到这些事件。

    • 单击左键:ClickMouseClick

    • 单击右键:ClickMouseClick

    • 双击左键:ClickMouseClickDoubleClickMouseDoubleClick

    • 双击右键:ClickMouseClickDoubleClickMouseDoubleClick

切换控件的绘制行为

切换控件(如从 ButtonBase 类派生的控件)具有以下与鼠标单击事件相结合的独特绘制行为:

  1. 用户按鼠标按钮。

  2. 该控件以按下状态进行绘制。

  3. 引发 MouseDown 事件。

  4. 用户释放鼠标按钮。

  5. 该控件以凸起状态进行绘制。

  6. 引发 Click 事件。

  7. 引发 MouseClick 事件。

  8. 引发 MouseUp 事件。

    Note注意

    如果用户在鼠标按钮处于按下状态时,将鼠标指针移出切换控件(例如,当鼠标按钮处于按下状态时将鼠标从 Button 控件中移出),则该切换控件将以凸起状态进行绘制,且只发生 MouseUp 事件。在这种情况下,ClickMouseClick 事件将不会发生。

 
  • 0
    点赞
  • 3
    评论
  • 2
    收藏
  • 扫一扫,分享海报

©️2022 CSDN 皮肤主题:大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值