Condividi tramite


Eventi mouse in Windows Form

Aggiornamento: novembre 2007

Quando si gestisce l'input del mouse, in genere si desidera conoscere la posizione del puntatore del mouse e lo stato dei pulsanti. In questo argomento vengono fornite informazioni sul reperimento di tali informazioni da eventi mouse e viene spiegato l'ordine in cui gli eventi click del mouse vengono generati in controlli Windows Form. Per un elenco e la descrizione di tutti gli eventi mouse, vedere Input del mouse in Windows Form.

Informazioni sul mouse

La classe MouseEventArgs viene inviata ai gestori degli eventi mouse correlati alla pressione di un pulsante e alla registrazione dei movimenti del mouse. La classe MouseEventArgs fornisce informazioni sullo stato corrente del mouse, fra cui la posizione del puntatore nelle coordinate del client, i pulsanti del mouse premuti e se la rotellina del mouse è stata fatta scorrere. Numerosi eventi mouse, ad esempio quelli che notificano semplicemente il momento in cui il puntatore del mouse entra o esce dai limiti di un controllo, inviano la classe EventArgs al gestore eventi senza ulteriori informazioni.

Se si desidera conoscere lo stato corrente dei pulsanti del mouse o la posizione del puntatore ed evitare la gestione di un evento mouse, è inoltre possibile utilizzare le proprietà MouseButtons e MousePosition della classe Control. La proprietà MouseButtons restituisce informazioni sui pulsanti del mouse correntemente premuti. La proprietà MousePosition restituisce le coordinate dello schermo del puntatore del mouse e coincide con il valore restituito dalla proprietà Position.

Conversione tra coordinate dello schermo e del client

Poiché alcune informazioni sulla posizione del mouse sono espresse con le coordinate del client e altre con le coordinate dello schermo, potrebbe essere necessario eseguire una conversione da un sistema di coordinate all'altro. Tale operazione può essere eseguita utilizzando i metodi PointToClient e PointToScreen disponibili nella classe Control.

Comportamento dell'evento click standard

Se si desidera gestire gli eventi click del mouse nell'ordine corretto, è necessario conoscere l'ordine in cui gli eventi click vengono generati nei controlli Windows Form. Tutti i controlli Windows Form generano eventi click nello stesso ordine quando si fa clic con un pulsante del mouse, fatta eccezione per i singoli controlli segnalati nell'elenco seguente. L'ordine degli eventi generati per un singolo clic del pulsante del mouse è il seguente:

  1. Evento MouseDown.

  2. Evento Click.

  3. Evento MouseClick.

  4. Evento MouseUp.

L'ordine degli eventi generati per un doppio clic del pulsante del mouse è il seguente:

  1. Evento MouseDown.

  2. Evento Click.

  3. Evento MouseClick.

  4. Evento MouseUp.

  5. Evento MouseDown.

  6. Evento DoubleClick. Può variare se il controllo in questione ha il bit di stile StandardDoubleClick impostato su true. Per ulteriori informazioni sulla modalità di impostazione di un bit ControlStyles, vedere il metodo SetStyle.

  7. Evento MouseDoubleClick.

  8. Evento MouseUp.

Per un esempio di codice che illustri l'ordine degli eventi click del mouse, vedere Procedura: gestire eventi di input degli utenti nei controlli Windows Form.

Controlli autonomi

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

Comportamento del disegno di controlli di attivazione/disattivazione

I controlli di attivazione/disattivazione, quali quelli che derivano dalla classe ButtonBase, presentano il seguente comportamento di disegno distintivo in combinazione con eventi click del mouse:

  1. L'utente preme il pulsante del mouse.

  2. Il controllo viene disegnato nello stato premuto.

  3. Viene generato l'evento MouseDown.

  4. L'utente rilascia il pulsante del mouse.

  5. Il controllo viene disegnato nello stato generato.

  6. Viene generato l'evento Click.

  7. Viene generato l'evento MouseClick.

  8. Viene generato l'evento MouseUp.

    Nota:

    Se l'utente sposta il puntatore all'esterno del controllo di attivazione/disattivazione mentre il pulsante del mouse è premuto, ad esempio spostando il mouse dal controllo Button mentre il pulsante è premuto, il controllo di attivazione/disattivazione viene disegnato nello stato rilasciato e si verifica solo l'evento MouseUp. In tale situazione l'evento Click o MouseClick non si verificherà.

Vedere anche

Altre risorse

Input del mouse in un'applicazione Windows Form