对于关注对 Windows 应用程序中引发的每个事件按次序进行处理的开发人员来说,事件引发的顺序特别重要。当某种情况需要小心处理事件时(如重绘窗体的某些部分时),必须知道事件在运行时的确切引发顺序。有关 Windows 窗体中事件的概述,请参见 Windows 窗体中事件的介绍。有关事件处理程序的构成的详细信息,请参见 Windows 窗体中事件处理程序的介绍。
Windows 窗体结构的另一个方面将在对 Windows 窗体背后 Visual Basic 代码的解析中进行说明。
标准 Click 事件引发行为
当按下并释放鼠标按钮(无论哪一个按钮)时,除对个别控件有说明外,所有 Windows 窗体控件都会以相同顺序引发事件。以下是鼠标按钮单击所引发的事件的顺序:
以下是鼠标按钮双击所引发的事件的顺序:
- MouseDown 事件。
- Click 事件。
- DoubleClick 事件。(此顺序可能会变化,取决于所讨论的控件是否将其 StandardDoubleClick 的 ControlStyles 位设置为 true。有关如何设置 ControlStyles 位的详细信息,请参见 Control.SetStyle 方法。)
- MouseUp 事件。
个别控件
以下控件不符合标准的 Click 事件行为:
- Button 控件
- 单击左键:Click
- 单击右键:不引发任何 Click 事件
- 双击左键:Click、Click
- 双击右键:不引发任何 Click 事件
- CheckBox 控件
- 单击左键:Click
- 单击右键:不引发任何 Click 事件
- 双击左键:Click、Click
- 双击右键:不引发任何 Click 事件
- RadioButton 控件
- 单击左键:Click
- 单击右键:不引发任何 Click 事件
- 双击左键:Click、Click
- 双击右键:不引发任何 Click 事件
- TextBox 控件
- 单击左键:Click
- 单击右键:不引发任何 Click 事件
- 双击左键:Click、DoubleClick
- 双击右键:不引发任何 Click 事件
- ListBox 控件
注意 无论用户是否单击某项,下面详述的事件行为都会发生(即在 ListBox 控件中的任何位置单击或双击鼠标都引发这些事件)。
- 单击左键:Click
- 单击右键:不引发任何 Click 事件
- 双击左键:Click、DoubleClick
- 双击右键:不引发任何 Click 事件
- CheckedListBox 控件
注意 无论用户是否单击某项,下面详述的事件行为都会发生(即在 ListBox 控件中的任何位置单击或双击鼠标都引发这些事件)。
- 单击左键:Click
- 单击右键:不引发任何 Click 事件
- 双击左键:Click、DoubleClick
- 双击右键:不引发任何 Click 事件
- ComboBox 控件
注意 无论用户是否单击编辑字段、按钮或列表项,下面详述的事件行为都会发生。
- 单击左键:Click
- 单击右键:不引发任何 Click 事件
- 双击左键:Click、Click
- 双击右键:不引发任何 Click 事件
- RichTextBox 控件
- 单击左键:不引发任何 Click 事件
- 单击右键:不引发任何 Click 事件
- 双击左键:不引发任何 Click 事件
- 双击右键:不引发任何 Click 事件
- ListView 控件
注意 下面详述的事件行为仅在用户单击 ListView 控件中的项时发生。单击控件上的任何其他位置都不会引发任何事件。除下面所描述的之外,还有 BeforeLabelEdit 和 AfterLabelEdit 事件,那些想对 ListView 控件使用验证的开发人员可能会对它们感兴趣。
- 单击左键:Click
- 单击右键:Click
- 双击左键:Click、DoubleClick
- 双击右键:Click、DoubleClick
- TreeView 控件
注意 下面详述的事件行为仅在用户单击项本身或单击 TreeView 控件中的项右侧时发生。单击控件上的任何其他位置都不会引发任何事件。除下面所描述的之外,还有 BeforeCheck、 BeforeSelect、 BeforeLabelEdit、 AfterSelect、 AfterCheck 和 AfterLabelEdit 事件,那些想对 TreeView 控件使用验证的开发人员可能会对它们感兴趣。
- 单击左键:Click
- 单击右键:Click
- 双击左键:Click、DoubleClick
- 双击右键:Click、DoubleClick
有关系统在引发这些事件时所发送的数据的详细信息,请参见 EventArgs 类。有关如何监视用户键盘输入的组合键(如 SHIFT、ALT 和 CTRL 键)的详细信息,请参见确定所按下的组合键。
控件绘制行为
切换控件(如从 ButtonBase 类派生的控件)有特别的绘制行为。其打印行为如下:
- 用户按鼠标按钮。
- 该控件以按下状态进行绘制。
- 引发 MouseDown 事件。
- 用户释放鼠标按钮。
- 该控件以凸起状态进行绘制。
- 引发 Click 事件。
- 引发 MouseUp 事件。
注意 如果用户在鼠标处于按下状态时将指针移出切换控件,则该切换控件将以凸起状态绘制,例如在 Button 控件处于按下状态时将鼠标从此控件上移开就属于这种情况。
请参见
Windows 窗体中的事件处理 | Windows 窗体中的鼠标事件和键盘事件 | Windows 窗体演练 | Windows 窗体和 Web 窗体推荐
id="Ad_21_7" marginwidth="0" marginheight="0" src="/Ad/Ad_21_7.htm" frameborder="0" width="0" scrolling="no" height="0">