Обработка введенных пользователем данных

Здесь описываются основные события, связанные с клавиатурой и мышью и предоставленные System.Windows.Forms.Control. При обработке события разработчики элементов управления должны переопределить защищенный On метод EventName, а не подключить делегат к событию. Сведения о событиях см. в разделе Инициирование событий из компонента.

Примечание.

Если отсутствуют данные, связанные с событием, экземпляр базового класса EventArgs передается в качестве аргумента в метод OnEventName.

События клавиатуры

Распространенные события клавиатуры, которые может обрабатывать элемент управления: KeyDown, KeyPress и KeyUp.

Имя события Метод для переопределения Описание события
KeyDown void OnKeyDown(KeyEventArgs) Возникает только при первоначальном нажатии клавиши.
KeyPress void OnKeyPress

(KeyPressEventArgs)
Возникает при каждом нажатии клавиши. При удержании клавиши в нажатом положении событие KeyPress возникает с частотой повторения, определяемой операционной системой.
KeyUp void OnKeyUp(KeyEventArgs) Возникает при отпускании клавиши.

Примечание.

Обработка ввода с клавиатуры значительно сложнее, чем переопределение событий в предыдущей таблице и в данном разделе не рассматривается. Дополнительные сведения см. в разделе Ввод данных пользователем в Windows Forms.

События мыши

События мыши, которые может обрабатывать элемент управления: MouseDown, MouseEnter, MouseHover, MouseLeave, MouseMove и MouseUp.

Имя события Метод для переопределения Описание события
MouseDown void OnMouseDown(MouseEventArgs) Возникает при нажатии кнопки мыши, когда указатель мыши находится на элементе управления.
MouseEnter void OnMouseEnter(EventArgs) Возникает, когда указатель мыши впервые входит в область элемента управления.
MouseHover void OnMouseHover(EventArgs) Возникает, когда указатель мыши наводится на элемент управления.
MouseLeave void OnMouseLeave(EventArgs) Возникает, когда указатель мыши покидает область элемента управления.
MouseMove void OnMouseMove(MouseEventArgs) Возникает, когда указатель мыши перемещается в область элемента управления.
MouseUp void OnMouseUp(MouseEventArgs) Возникает при отпускании кнопки мыши, когда указатель мыши находится на элементе управления или покидает область элемента управления.

Следующий фрагмент кода показывает пример переопределения события MouseDown.

protected override void OnMouseDown(MouseEventArgs e) {
    base.OnMouseDown(e);
    if (!allowUserEdit) {
        return;
    }
    Capture = true;
    dragging = true;
    SetDragValue(new Point(e.X, e.Y));
}
Protected Overrides Sub OnMouseDown(ByVal e As MouseEventArgs)
    MyBase.OnMouseDown(e)
    If Not (myAllowUserEdit) Then
        Return
    End If
    Capture = True
    dragging = True
    SetDragValue(New Point(e.X, e.Y))
End Sub

Следующий фрагмент кода показывает пример переопределения события MouseMove.

protected override void OnMouseMove(MouseEventArgs e) {
    base.OnMouseMove(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    SetDragValue(new Point(e.X, e.Y));
}
Protected Overrides Sub OnMouseMove(ByVal e As MouseEventArgs)
    MyBase.OnMouseMove(e)
    If (Not myAllowUserEdit Or Not dragging) Then
        Return
    End If
    SetDragValue(New Point(e.X, e.Y))
End Sub

Следующий фрагмент кода показывает пример переопределения события MouseUp.

protected override void OnMouseUp(MouseEventArgs e) {
    base.OnMouseUp(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    Capture = false;
    dragging = false;
    value = dragValue;
    OnValueChanged(EventArgs.Empty);
}
Protected Overrides Sub OnMouseUp(ByVal e As MouseEventArgs)
    MyBase.OnMouseUp(e)
    If (Not myAllowUserEdit Or Not dragging) Then
        Return
    End If
    Capture = False
    dragging = False
    Value = dragValue
    OnValueChanged(EventArgs.Empty)
End Sub

Полный исходный код для примера FlashTrackBar см. в разделе Практическое руководство. Создание элемента управления, показывающего прогресс в форме Windows Forms.

См. также