鼠标点击事件
标准单击事件行为
如果要以正确顺序处理鼠标单击事件,需要知道在 Windows 窗体控件中单击事件的引发顺序。除对下面列表中的个别控件另有说明外,当按下并释放鼠标按钮(无论哪个按钮)时,所有 Windows 窗体控件都会以相同顺序引发单击事件。
下面列表显示单击一次鼠标按钮所引发事件的顺序:
- MouseDown 事件
- Click 事件
- MouseClick 事件
- MouseUp 事件
以下是双击鼠标按钮所引发事件的顺序:
- MouseDown 事件
- Click 事件
- MouseClick 事件
- MouseUp 事件
- MouseDown 事件
- DoubleClick 事件。(这可能有所不同,具体取决于相关控件是否将 StandardDoubleClick 样式位设为 true,设置为false时,DoubleClick事件不可用。)
- MouseDoubleClick 事件
- 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 事件将不会发生。