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 Onmetodu 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 Onmetodě 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é