Control.GotFocus 事件

定义

在控件接收焦点时发生。

C#
[System.ComponentModel.Browsable(false)]
public event EventHandler GotFocus;
C#
[System.ComponentModel.Browsable(false)]
public event EventHandler? GotFocus;

事件类型

属性

示例

下面的代码示例演示了此成员的用法。 在此示例中,事件处理程序报告事件的发生情况 GotFocus 。 此报告可帮助你了解事件发生的时间,并可以帮助你进行调试。

若要运行示例代码,请将其粘贴到包含继承自 Control的类型的实例(如 ButtonComboBox)的项目中。 然后命名实例 Control1 并确保事件处理程序与事件 GotFocus 相关联。

C#
private void Control1_GotFocus(Object sender, EventArgs e) {

   MessageBox.Show("You are in the Control.GotFocus event.");
}

注解

通过使用键盘 (TAB、SHIFT+TAB 等) 、调用 SelectSelectNextControl 方法或将 属性设置为 ContainerControl.ActiveControl 当前窗体来更改焦点时,焦点事件按以下顺序发生:

  1. Enter

  2. GotFocus

  3. Leave

  4. Validating

  5. Validated

  6. LostFocus

使用鼠标或调用 Focus 方法更改焦点时,焦点事件将按以下顺序发生:

  1. Enter

  2. GotFocus

  3. LostFocus

  4. Leave

  5. Validating

  6. Validated

如果 属性 CausesValidation 设置为 falseValidating 则会取消 和 Validated 事件。

注意GotFocusLostFocus 事件是低级别焦点事件,与WM_KILLFOCUS和WM_SETFOCUS Windows 消息相关联。 通常, GotFocusLostFocus 事件仅在更新 UICues 或编写自定义控件时使用。 Enter应将 和 Leave 事件用于除 类以外的Form所有控件,该类使用 ActivatedDeactivate 事件。 有关 和 LostFocus 事件的详细信息GotFocus,请参阅WM_SETFOCUSWM_KILLFOCUS主题。

注意

不要尝试从 、、GotFocusLostFocusLeaveValidatingValidated 事件处理程序中Enter设置焦点。 这样做可能会导致应用程序或操作系统停止响应。 有关详细信息,请参阅 WM_KILLFOCUS 主题。

有关处理事件的详细信息,请参阅 处理和引发事件

适用于

产品 版本
.NET Framework 1.1, 2.0, 3.0, 3.5, 4.0, 4.5, 4.5.1, 4.5.2, 4.6, 4.6.1, 4.6.2, 4.7, 4.7.1, 4.7.2, 4.8, 4.8.1
Windows Desktop 3.0, 3.1, 5, 6, 7, 8, 9, 10

另请参阅