Поделиться через


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

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

Примечание

При отсутствии данных, связанных с событием, в качестве аргумента для метода OnИмяСобытия передается экземпляр базового класса EventArgs.

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

Основными событиями клавиатуры, которые может обрабатывать элемент управления пользователя, являются 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 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
protected override void OnMouseDown(MouseEventArgs e) {
    base.OnMouseDown(e);
    if (!allowUserEdit) {
        return;
    }
    Capture = true;
    dragging = true;
    SetDragValue(new Point(e.X, e.Y));
}

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

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
protected override void OnMouseMove(MouseEventArgs e) {
    base.OnMouseMove(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    SetDragValue(new Point(e.X, e.Y));
}

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

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
protected override void OnMouseUp(MouseEventArgs e) {
    base.OnMouseUp(e);
    if (!allowUserEdit || !dragging) {
        return;
    }
    Capture = false;
    dragging = false;
    value = dragValue;
    OnValueChanged(EventArgs.Empty);
}

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

См. также

Основные понятия

События элементов управления Windows Forms

Определение событий в элементах управления Windows Forms

Другие ресурсы

Обработка и вызов событий

Ввод данных пользователем в Windows Forms