Обработка введенных пользователем данных
В этом разделе описываются основные события клавиатуры и мыши, предоставляемые элементом управления 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