从逻辑上来说,Click 事件是控件的更高级别的事件。它们通常由其他操作引发,例如当焦点在控件上时按 Enter 键。
命名空间:System.Windows.Forms
程序集:System.Windows.Forms(在system.windows.forms.dll中)
public event EventHandler DoubleClick
public event MouseEventHandler MouseDoubleClick
标准单击事件行为
如果要以正确顺序处理鼠标单击事件,需要知道在 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 控件
注意
只有当用户在 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 事件将不会发生。