Obsługa danych wejściowych użytkownika

W tym temacie opisano główne zdarzenia klawiatury i myszy dostarczone przez System.Windows.Forms.Controlprogram . W przypadku obsługi zdarzenia autorzy kontrolek powinni zastąpić chronioną Onmetodę EventName zamiast dołączać delegata do zdarzenia. Aby zapoznać się z przeglądem zdarzeń, zobacz Podnoszenie zdarzeń ze składnika.

Uwaga

Jeśli z zdarzeniem nie są skojarzone żadne dane, wystąpienie klasy EventArgs bazowej jest przekazywane jako argument do Onmetody EventName .

Zdarzenia klawiatury

Typowe zdarzenia klawiatury obsługiwane przez kontrolkę to KeyDown, KeyPressi KeyUp.

Nazwa zdarzenia Metoda zastąpienia Opis zdarzenia
KeyDown void OnKeyDown(KeyEventArgs) Podniesione tylko wtedy, gdy klawisz jest początkowo naciskany.
KeyPress void OnKeyPress

(KeyPressEventArgs)
Podniesione za każdym razem, gdy klawisz jest naciskany. Jeśli klucz zostanie zatrzymany, KeyPress zdarzenie zostanie podniesione z częstotliwością powtarzania zdefiniowaną przez system operacyjny.
KeyUp void OnKeyUp(KeyEventArgs) Podniesione po wydaniu klucza.

Uwaga

Obsługa wprowadzania klawiatury jest znacznie bardziej złożona niż zastępowanie zdarzeń w poprzedniej tabeli i wykracza poza zakres tego tematu. Aby uzyskać więcej informacji, zobacz Dane wejściowe użytkownika w formularzach systemu Windows.

Zdarzenia myszy

Zdarzenia myszy obsługiwane przez kontrolkę to MouseDown, , MouseEnter, MouseHover, MouseLeave, MouseMove, i MouseUp.

Nazwa zdarzenia Metoda zastąpienia Opis zdarzenia
MouseDown void OnMouseDown(MouseEventArgs) Podniesione po naciśnięciu przycisku myszy, gdy wskaźnik jest nad kontrolką.
MouseEnter void OnMouseEnter(EventArgs) Podniesione po pierwszym wejściu wskaźnika do regionu kontrolki.
MouseHover void OnMouseHover(EventArgs) Podniesione po umieszczeniu wskaźnika na kontrolce.
MouseLeave void OnMouseLeave(EventArgs) Podniesione, gdy wskaźnik opuszcza obszar kontrolki.
MouseMove void OnMouseMove(MouseEventArgs) Podniesione, gdy wskaźnik porusza się w regionie kontrolki.
MouseUp void OnMouseUp(MouseEventArgs) Podniesione, gdy przycisk myszy jest zwalniany, gdy wskaźnik znajduje się nad kontrolką lub wskaźnik opuszcza region kontrolki.

Poniższy fragment kodu przedstawia przykład zastąpienia MouseDown zdarzenia.

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

Poniższy fragment kodu przedstawia przykład zastąpienia MouseMove zdarzenia.

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

Poniższy fragment kodu przedstawia przykład zastąpienia MouseUp zdarzenia.

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

Pełny kod źródłowy przykładu można znaleźć w FlashTrackBar temacie How to: Create a Windows Forms Control That Shows Progress (Instrukcje: tworzenie kontrolki Formularzy systemu Windows pokazującej postęp).

Zobacz też