Gestione dell'input dell'utente
In questo argomento vengono descritti gli eventi principali della tastiera e del mouse forniti da System.Windows.Forms.Control. Quando si gestisce un evento, gli autori dei controlli devono eseguire l'override del metodo protetto On
EventName anziché associare un delegato all'evento. Per una panoramica degli eventi, vedere Generazione di eventi da un componente.
Nota
Se non sono presenti dati associati a un evento, un'istanza della classe EventArgs di base viene passata come argomento al On
metodo EventName .
Eventi della tastiera
Gli eventi di tastiera comuni che il controllo può gestire sono KeyDown, KeyPresse KeyUp.
Nome evento | Metodo di cui eseguire l'override | Descrizione dell'evento |
---|---|---|
KeyDown |
void OnKeyDown(KeyEventArgs) |
Generato solo quando un tasto viene premuto inizialmente. |
KeyPress |
void OnKeyPress (KeyPressEventArgs) |
Generato ogni volta che un tasto viene premuto. Se si tiene premuta una chiave, viene generato un KeyPress evento alla frequenza di ripetizione definita dal sistema operativo. |
KeyUp |
void OnKeyUp(KeyEventArgs) |
Viene generato quando un tasto viene rilasciato. |
Nota
La gestione dell'input da tastiera è notevolmente più complessa dell'override degli eventi nella tabella precedente ed esula dall'ambito di questo argomento. Per altre informazioni, vedere Input dell'utente in Windows Forms.
Eventi del mouse
Gli eventi del mouse che il controllo può gestire sono MouseDown, , MouseLeaveMouseEnterMouseHover, MouseMove, e MouseUp.
Nome evento | Metodo di cui eseguire l'override | Descrizione dell'evento |
---|---|---|
MouseDown |
void OnMouseDown(MouseEventArgs) |
Viene generato quando il pulsante del mouse viene premuto mentre il puntatore si trova sopra il controllo. |
MouseEnter |
void OnMouseEnter(EventArgs) |
Viene generato quando il puntatore del mouse entra nell'area del controllo. |
MouseHover |
void OnMouseHover(EventArgs) |
Viene generato quando il puntatore è posizionato sul controllo. |
MouseLeave |
void OnMouseLeave(EventArgs) |
Viene generato quando il puntatore esce dall'area del controllo. |
MouseMove |
void OnMouseMove(MouseEventArgs) |
Viene generato quando il puntatore si sposta nell'area del controllo. |
MouseUp |
void OnMouseUp(MouseEventArgs) |
Viene generato quando il pulsante del mouse viene rilasciato mentre il puntatore si trova sul controllo o il puntatore esce dall'area del controllo. |
Il frammento di codice seguente mostra un esempio di override dell'evento MouseDown .
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
Il frammento di codice seguente mostra un esempio di override dell'evento MouseMove .
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
Il frammento di codice seguente mostra un esempio di override dell'evento MouseUp .
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
Per il codice sorgente completo dell'esempio FlashTrackBar
, vedere Procedura: Creare un controllo di Windows Forms che visualizzi lo stato di avanzamento.
Vedi anche
.NET Desktop feedback
Commenti e suggerimenti
https://aka.ms/ContentUserFeedback.
Presto disponibile: Nel corso del 2024 verranno gradualmente disattivati i problemi di GitHub come meccanismo di feedback per il contenuto e ciò verrà sostituito con un nuovo sistema di feedback. Per altre informazioni, vedereInvia e visualizza il feedback per