Gestione dell'input dell'utente
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