Condividi tramite


Uso degli eventi del mouse

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:

  1. MouseDown evento.
  2. Click evento.
  3. MouseClick evento.
  4. MouseUp evento.

Di seguito è riportato l'ordine degli eventi generati per un doppio clic del pulsante del mouse:

  1. MouseDown evento.

  2. Click evento.

  3. MouseClick evento.

  4. MouseUp evento.

  5. MouseDown evento.

  6. 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 .

  7. MouseDoubleClick evento.

  8. MouseUp evento.

Singoli controlli

I controlli seguenti non sono conformi al comportamento standard dell'evento click del mouse:

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:

  1. L'utente preme il pulsante del mouse.

  2. Il controllo visualizza nello stato premuto.

  3. Viene generato l'evento MouseDown.

  4. L'utente rilascia il pulsante del mouse.

  5. Il controllo disegna nello stato sollevato.

  6. Viene generato l'evento Click.

  7. Viene generato l'evento MouseClick.

  8. 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