Zpracování uživatelského vstupu
Toto téma popisuje hlavní události klávesnice a myši poskytované System.Windows.Forms.Control. Při zpracování události by autoři ovládacích prvků měli místo připojení delegáta k události přepsat chráněnou On
metodu EventName . Přehled událostí naleznete v tématu Vyvolávání událostí z komponenty.
Poznámka:
Pokud k události nejsou přidružena žádná data, předá se instance základní třídy EventArgs jako argument On
metodě EventName .
Události klávesnice
Běžné události klávesnice, které váš ovládací prvek dokáže zpracovat, jsou KeyDown, KeyPressa KeyUp.
Název události | Metoda přepsání | Popis události |
---|---|---|
KeyDown |
void OnKeyDown(KeyEventArgs) |
Vyvoláno pouze při počátečním stisknutí klávesy. |
KeyPress |
void OnKeyPress (KeyPressEventArgs) |
Vyvolá se při každém stisknutí klávesy. Pokud je klíč přidržován, KeyPress je událost vyvolána rychlostí opakování definovanou operačním systémem. |
KeyUp |
void OnKeyUp(KeyEventArgs) |
Vyvolá se při uvolnění klíče. |
Poznámka:
Zpracování vstupu pomocí klávesnice je výrazně složitější než přepsání událostí v předchozí tabulce a přesahuje rozsah tohoto tématu. Další informace naleznete v tématu Uživatelský vstup v model Windows Forms.
Události myši
Události myši, které může ovládací prvek zpracovat, jsou MouseDown, MouseEnter, MouseHover, MouseLeave, MouseMovea MouseUp.
Název události | Metoda přepsání | Popis události |
---|---|---|
MouseDown |
void OnMouseDown(MouseEventArgs) |
Vyvolá se při stisknutí tlačítka myši, když je ukazatel nad ovládacím prvku. |
MouseEnter |
void OnMouseEnter(EventArgs) |
Vyvolá se při prvním zadání ukazatele do oblasti ovládacího prvku. |
MouseHover |
void OnMouseHover(EventArgs) |
Vyvolá se při najetí ukazatelem na ovládací prvek. |
MouseLeave |
void OnMouseLeave(EventArgs) |
Vyvolá se, když ukazatel opustí oblast ovládacího prvku. |
MouseMove |
void OnMouseMove(MouseEventArgs) |
Vyvolá se, když se ukazatel přesune v oblasti ovládacího prvku. |
MouseUp |
void OnMouseUp(MouseEventArgs) |
Vyvolá se při uvolnění tlačítka myši, když je ukazatel nad ovládacím prvku nebo ukazatel opustí oblast ovládacího prvku. |
Následující fragment kódu ukazuje příklad přepsání MouseDown události.
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
Následující fragment kódu ukazuje příklad přepsání MouseMove události.
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
Následující fragment kódu ukazuje příklad přepsání MouseUp události.
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
Úplný zdrojový kód ukázky FlashTrackBar
najdete v tématu Postupy: Vytvoření ovládacího prvku model Windows Forms, který zobrazuje průběh.
Viz také
.NET Desktop feedback