Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
La maggior parte dei programmi Windows Form elabora l'input del mouse gestendo gli eventi del mouse. Questo articolo offre una panoramica degli eventi del mouse, inclusi i dettagli su quando usare ogni evento e i dati forniti per ogni evento. Per altre informazioni sugli eventi in generale, vedere Panoramica degli eventi.
Eventi del mouse
Il modo principale per rispondere all'input del mouse consiste nel gestire gli eventi del mouse. La tabella seguente illustra gli eventi del mouse e descrive quando vengono generati.
Evento del mouse | Descrizione |
---|---|
Click | Questo evento si verifica quando viene rilasciato il pulsante del mouse, in genere prima dell'evento MouseUp. Il gestore di questo evento riceve un argomento di tipo EventArgs. Gestire questo evento solo quando è necessario determinare quando si verifica un clic. |
MouseClick | Questo evento si verifica quando l'utente fa clic sul controllo con il mouse. Il gestore di questo evento riceve un argomento di tipo MouseEventArgs. Gestire questo evento quando è necessario ottenere informazioni sul mouse quando si verifica un clic. |
DoubleClick | Questo evento si verifica quando si fa doppio clic sul controllo. Il gestore di questo evento riceve un argomento di tipo EventArgs. Gestisci questo evento solo quando è necessario determinare quando si verifica un doppio clic. |
MouseDoubleClick | Questo evento si verifica quando l'utente fa doppio clic sul controllo con il mouse. Il gestore di questo evento riceve un argomento di tipo MouseEventArgs. Gestisci questo evento quando è necessario ottenere informazioni sul mouse a seguito di un doppio clic. |
MouseDown | Questo evento si verifica quando il puntatore del mouse si trova sul controllo e l'utente preme un pulsante del mouse. Il gestore di questo evento riceve un argomento di tipo MouseEventArgs. |
MouseEnter | Questo evento si verifica quando il puntatore del mouse entra nel bordo o nell'area client del controllo, a seconda del tipo di controllo. Il gestore di questo evento riceve un argomento di tipo EventArgs. |
MouseHover | Questo evento si verifica quando il puntatore del mouse si arresta e si posiziona sul controllo. Il gestore di questo evento riceve un argomento di tipo EventArgs. |
MouseLeave | Questo evento si verifica quando il puntatore del mouse lascia il bordo o l'area client del controllo, a seconda del tipo del controllo. Il gestore di questo evento riceve un argomento di tipo EventArgs. |
MouseMove | Questo evento si verifica quando il puntatore del mouse si sposta mentre si trova su un controllo. Il gestore di questo evento riceve un argomento di tipo MouseEventArgs. |
MouseUp | Questo evento si verifica quando il puntatore del mouse si trova sul controllo e l'utente rilascia un pulsante del mouse. Il gestore di questo evento riceve un argomento di tipo MouseEventArgs. |
MouseWheel | Questo evento si verifica quando l'utente ruota la rotellina del mouse quando il controllo è attivo. Il gestore di questo evento riceve un argomento di tipo MouseEventArgs. Utilizzare la MouseEventArgs.Delta proprietà per determinare la distanza di scorrimento del mouse. |
Informazioni sul mouse
Un MouseEventArgs viene inviato ai gestori degli eventi del mouse correlati al clic di un pulsante e al tracciamento dei movimenti del mouse. MouseEventArgs fornisce informazioni sullo stato corrente del mouse, inclusa la posizione del puntatore del mouse nelle coordinate client, quali pulsanti del mouse vengono premuti e se è stato eseguito lo scorrimento della rotellina del mouse. Diversi eventi del mouse, ad esempio quelli generati quando il puntatore del mouse è entrato o ha lasciato i limiti di un componente, inviano un oggetto EventArgs al gestore eventi senza ulteriori informazioni.
Se si desidera conoscere lo stato corrente dei pulsanti del mouse o la posizione del puntatore del mouse e si desidera evitare di gestire un evento del mouse, è anche possibile utilizzare le MouseButtons proprietà e MousePosition della Control classe . MouseButtons restituisce informazioni sui pulsanti del mouse attualmente premuti. MousePosition Restituisce le coordinate dello schermo del puntatore del mouse ed è equivalente al valore restituito da Position.
Conversione tra coordinate dello schermo e client
Poiché alcune informazioni sulla posizione del mouse si trovano nelle coordinate client e alcune si trovano nelle coordinate dello schermo, potrebbe essere necessario convertire un punto da un sistema di coordinate all'altro. È possibile eseguire questa operazione facilmente usando i PointToClient metodi e PointToScreen disponibili nella Control classe .
Comportamento dell'evento Click standard
Se si desidera gestire gli eventi di clic del mouse nell'ordine corretto, è necessario conoscere l'ordine in cui vengono generati eventi click nei controlli Windows Form. Tutti i controlli Windows Form generano eventi di clic nello stesso ordine quando viene premuto e rilasciato qualsiasi pulsante del mouse supportato, tranne dove indicato nell'elenco seguente per i singoli controlli. L'elenco seguente mostra l'ordine degli eventi generati per un singolo clic del pulsante del mouse:
- MouseDown evento.
- Click evento.
- MouseClick evento.
- MouseUp evento.
Di seguito è riportato l'ordine degli eventi generati per un doppio clic del pulsante del mouse:
MouseDown evento.
Click evento.
MouseClick evento.
MouseUp evento.
MouseDown evento.
DoubleClick evento.
Questo può variare, a seconda che il controllo in questione abbia il StandardDoubleClick bit di stile impostato su
true
. Per altre informazioni su come impostare un ControlStyles bit, vedere il SetStyle metodo .MouseDoubleClick evento.
MouseUp evento.
Singoli controlli
I controlli seguenti non sono conformi al comportamento standard dell'evento click del mouse:
-
Annotazioni
Per il ComboBox controllo, il comportamento dell'evento, come dettagliato in seguito, si verifica se l'utente fa clic sul campo di modifica, sul pulsante o su un elemento all'interno dell'elenco.
- Fare clic con il pulsante sinistro del mouse: Click, MouseClick
- Fare clic con il pulsante destro del mouse: nessun evento di clic generato
- Fare doppio clic con il pulsante sinistro del mouse: Click, MouseClick, Click, MouseClick
- Doppio clic con il pulsante destro del mouse: nessun evento di clic generato
TextBox, RichTextBox, ListBox, MaskedTextBox e CheckedListBox controlli
Annotazioni
Il comportamento dell'evento descritto più avanti si verifica quando l'utente fa clic in un punto qualsiasi all'interno di questi controlli.
- Fare clic con il pulsante sinistro del mouse: Click, MouseClick
- Fare clic con il pulsante destro del mouse: nessun evento di clic generato
- Fare doppio clic con il pulsante sinistro del mouse: Click, MouseClick, DoubleClick, MouseDoubleClick
- Doppio clic con il pulsante destro del mouse: nessun evento di clic generato
controllo ListView
Annotazioni
Il comportamento dell'evento dettagliato in un secondo momento si verifica solo quando l'utente fa clic sugli elementi nel ListView controllo. Nessun evento viene generato per i clic in un'altra posizione del controllo. Oltre agli eventi descritti più avanti, sono presenti gli eventi BeforeLabelEdit e AfterLabelEdit, che potrebbero essere di vostro interesse se desideri utilizzare la convalida con il controllo ListView.
- Fare clic con il pulsante sinistro del mouse: Click, MouseClick
- Fare clic con il pulsante destro del mouse: Click, MouseClick
- Fare doppio clic con il pulsante sinistro del mouse: Click, MouseClick, DoubleClick, MouseDoubleClick
- Fare doppio clic con il pulsante destro del mouse: Click, MouseClick; DoubleClick, MouseDoubleClick
controllo TreeView
Annotazioni
Il comportamento dell'evento dettagliato in un secondo momento si verifica solo quando l'utente fa clic sugli elementi stessi o a destra degli elementi nel TreeView controllo. Nessun evento viene generato per i clic in un'altra posizione del controllo. Oltre a quelli descritti più avanti, sono disponibili gli eventi BeforeCheck, BeforeSelect, BeforeLabelEdit, AfterSelect, AfterCheck e AfterLabelEdit, che potrebbero interessarti se vuoi usare la convalida con il controllo TreeView.
- Fare clic con il pulsante sinistro del mouse: Click, MouseClick
- Fare clic con il pulsante destro del mouse: Click, MouseClick
- Fare doppio clic con il pulsante sinistro del mouse: Click, MouseClick, DoubleClick, MouseDoubleClick
- Fare doppio clic con il pulsante destro del mouse: Click, MouseClick; DoubleClick, MouseDoubleClick
Rappresentazione grafica del comportamento dei controlli a levetta
Controlli a levetta, come i controlli derivati dalla classe ButtonBase, presentano il seguente comportamento distintivo in combinazione con i clic del mouse:
L'utente preme il pulsante del mouse.
Il controllo visualizza nello stato premuto.
Viene generato l'evento MouseDown.
L'utente rilascia il pulsante del mouse.
Il controllo disegna nello stato sollevato.
Viene generato l'evento Click.
Viene generato l'evento MouseClick.
Viene generato l'evento MouseUp.
Annotazioni
Se l'utente sposta il puntatore dal controllo a levetta mentre il pulsante del mouse è premuto (ad esempio spostando il mouse fuori dal controllo Button mentre viene premuto), il controllo a levetta viene visualizzato nello stato sollevato e si verifica solo l'evento MouseUp. Gli eventi Click o MouseClick non si verificheranno in questa situazione.
Vedere anche
.NET Desktop feedback