Gestione dell'input dell'utente

Aggiornamento: novembre 2007

In questo argomento vengono descritti gli eventi principali relativi a tastiera e mouse forniti da System.Windows.Forms.Control. Durante la gestione di un evento, gli autori dei controlli dovrebbero eseguire l'override del metodo OnNomeEvento protetto anziché associare un delegato all'evento. Per informazioni generali sugli eventi, vedere Generazione di eventi da un componente.

Nota:

Se a un evento non sono associati dati, un'istanza della classe di base EventArgs verrà passata come argomento al metodo OnNomeEvento.

Eventi della tastiera

Gli eventi della tastiera che il controllo è in grado di gestire sono KeyDown, KeyPress e KeyUp.

Nome evento

Metodo di cui eseguire l'override

Descrizione dell'evento

KeyDown

void OnKeyDown(KeyEventArgs)

Generato solo quando inizialmente è premuto un tasto.

KeyPress

void OnKeyPress

(KeyPressEventArgs)

Generato ogni volta che è premuto un tasto. Se un tasto viene tenuto premuto, viene generata una serie di eventi KeyPress con una frequenza definita dal sistema operativo.

KeyUp

void OnKeyUp(KeyEventArgs)

Generato quando è rilasciato un tasto.

Nota:

La gestione dell'input da tastiera è notevolmente più complessa dell'override degli eventi esposti nella tabella precedente e non rientra nell'ambito di questo argomento. Per ulteriori informazioni, vedere Input dell'utente in Windows Form.

Eventi del mouse

Gli eventi del mouse che il controllo è in grado di gestire sono MouseDown, MouseEnter, MouseHover, MouseLeave, MouseMove e MouseUp.

Nome evento

Metodo di cui eseguire l'override

Descrizione dell'evento

MouseDown

void OnMouseDown(MouseEventArgs)

Generato quando viene premuto il pulsante del mouse mentre il puntatore si trova sopra il controllo.

MouseEnter

void OnMouseEnter(EventArgs)

Generato quando il puntatore viene portato all'interno della regione del controllo.

MouseHover

void OnMouseHover(EventArgs)

Generato quando il puntatore passa sopra il controllo.

MouseLeave

void OnMouseLeave(EventArgs)

Generato quando il puntatore viene portato all'esterno della regione del controllo.

MouseMove

void OnMouseMove(MouseEventArgs)

Generato quando il puntatore viene spostato sopra la regione del controllo.

MouseUp

void OnMouseUp(MouseEventArgs)

Generato quando il pulsante del mouse viene rilasciato mentre il puntatore si trova sul controllo o quando il puntatore viene portato all'esterno della regione del controllo.

Nel codice riportato di seguito viene illustrato un esempio di override dell'evento 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));
}

Nel codice riportato di seguito viene illustrato un esempio di override dell'evento 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));
}

Nel codice riportato di seguito viene illustrato un esempio di override dell'evento 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);
}

Per il codice sorgente completo dell'esempio FlashTrackBar, vedere Procedura: creare un controllo di Windows Form che visualizzi lo stato di avanzamento.

Vedere anche

Concetti

Eventi nei controlli di Windows Form

Definizione di un evento nei controlli Windows Form

Altre risorse

Gestione e generazione di eventi

Input dell'utente in Windows Form