鼠标点击事件

标准单击事件行为

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

下面列表显示单击一次鼠标按钮所引发事件的顺序:

  1. MouseDown 事件
  2. Click 事件
  3. MouseClick 事件
  4. MouseUp 事件

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

  1. MouseDown 事件
  2. Click 事件
  3. MouseClick 事件
  4. MouseUp 事件
  5. MouseDown 事件
  6. DoubleClick 事件。(这可能有所不同,具体取决于相关控件是否将 StandardDoubleClick 样式位设为 true,设置为false时,DoubleClick事件不可用。)
  7. MouseDoubleClick 事件
  8. MouseUp 事件

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

Button、CheckBox、ComboBox 和 RadioButton 控件

以上控件不符合标准的鼠标单击事件行为

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

  • 单击左键:Click、MouseClick
  • 单击右键:不引发任何单击事件
  • 双击左键:Click、MouseClick;Click、MouseClick
  • 双击右键:不引发任何单击事件

单击这些控件内的任何位置

TextBox、RichTextBox、ListBox、MaskedTextBox 和 CheckedListBox 控件

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

注意

  • 单击左键:Click、MouseClick
  • 单击右键:不引发任何单击事件
  • 双击左键:Click、MouseClick、DoubleClick,MouseDoubleClick
  • 双击右键:不引发任何单击事件

ListView 控件

注意

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

  • 单击左键:Click、MouseClick
  • 单击右键:Click、MouseClick
  • 双击左键:Click、MouseClick;DoubleClick、MouseDoubleClick
  • 双击右键:Click、MouseClick;DoubleClick、MouseDoubleClick

注意

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

  • 单击左键:Click、MouseClick
  • 单击右键:Click、MouseClick
  • 双击左键:Click、MouseClick;DoubleClick、MouseDoubleClick
  • 双击右键:Click、MouseClick;DoubleClick、MouseDoubleClick

切换控件的绘制行为

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

用户按鼠标按钮。

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

引发 MouseDown 事件。

用户释放鼠标按钮。

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

引发 Click 事件。

引发 MouseClick 事件。

引发 MouseUp 事件。

注意

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

本文至此结束
最后修改:2022 年 06 月 13 日
如果觉得我的文章对你有用,请随意赞赏