Condividi tramite


Input del mouse in Windows Form

La ricezione e la gestione dell'input del mouse costituiscono un elemento importante di ogni applicazione Windows. È possibile gestire eventi del mouse per eseguire un'azione nell'applicazione oppure utilizzare le informazioni sulla posizione del mouse per eseguire un'operazione di hit testing o altre azioni. È inoltre possibile modificare la modalità con cui l'input del mouse viene gestito dai controlli dell'applicazione. In questo argomento sono descritti dettagliatamente gli eventi del mouse e viene illustrato come ottenere e modificare le impostazioni di sistema per il mouse. Per ulteriori informazioni sui dati forniti con gli eventi del mouse e l'ordine in cui gli eventi click del mouse sono generati, vedere Eventi mouse in Windows Form.

Posizione del mouse e operazione di hit testing

Quando l'utente sposta il mouse, il sistema operativo sposta il puntatore del mouse. Il puntatore del mouse contiene un unico pixel, detto area sensibile, che viene registrato e riconosciuto come posizione del puntatore. Quando l'utente sposta il mouse o preme un pulsante, la classe Control contenente la proprietà HotSpot genera l'evento del mouse appropriato. Per ottenere la posizione corrente del mouse, è possibile utilizzare la proprietà Location della classe MouseEventArgs durante la gestione di un evento del mouse oppure la proprietà Position della classe Cursor. Le informazioni sulla posizione del mouse possono quindi essere utilizzate per operazioni di hit testing e in seguito per l'esecuzione di un'azione basata sulla posizione del mouse. La funzione di hit testing è incorporata in vari controlli in Windows Form, ad esempio i controlli ListView, TreeView, MonthCalendar e DataGridView. Se utilizzata con l'evento del mouse appropriato, ad esempio con MouseHover, l'operazione di hit testing è molto utile per determinare il momento in cui nell'applicazione deve essere eseguita una determinata azione.

Eventi del mouse

Il modo principale per rispondere all'input del mouse consiste nel gestire gli eventi del mouse. Nella tabella seguente sono indicati gli eventi del mouse e descritti i momenti in cui vengono generati.

Evento del mouse

Descrizione

Click

Si verifica quando il pulsante del mouse viene rilasciato, solitamente prima dell'evento MouseUp. Il gestore di questo evento riceve un argomento di tipo EventArgs. Gestire l'evento quando è sufficiente determinare il momento in cui si verifica un clic.

MouseClick

Si verifica quando l'utente fa clic sul controllo con il mouse. Il gestore di questo evento riceve un argomento di tipo MouseEventArgs. Gestire l'evento quando è necessario reperire informazioni sul mouse nel momento in cui si verifica un clic.

DoubleClick

Si verifica quando viene fatto doppio clic sul controllo. Il gestore di questo evento riceve un argomento di tipo EventArgs. Gestire l'evento quando è sufficiente determinare il momento in cui si verifica un doppio clic.

MouseDoubleClick

Si verifica quando l'utente fa doppio clic sul controllo con il mouse. Il gestore di questo evento riceve un argomento di tipo MouseEventArgs. Gestire l'evento quando è necessario reperire informazioni sul mouse nel momento in cui si verifica un doppio clic.

MouseDown

Si verifica quando il puntatore del mouse è sopra il controllo e l'utente preme un pulsante del mouse. Il gestore di questo evento riceve un argomento di tipo MouseEventArgs.

MouseEnter

Si verifica quando il puntatore del mouse si sposta all'interno del bordo o dell'area client del controllo, a seconda del tipo di controllo. Il gestore di questo evento riceve un argomento di tipo EventArgs.

MouseHover

Si verifica quando il puntatore del mouse si ferma sul controllo. Il gestore di questo evento riceve un argomento di tipo EventArgs.

MouseLeave

Si verifica quando il puntatore del mouse si sposta all'esterno del bordo o dell'area client del controllo, a seconda del tipo di controllo. Il gestore di questo evento riceve un argomento di tipo EventArgs.

MouseMove

Si verifica quando il puntatore del mouse si sposta mentre è su un controllo. Il gestore di questo evento riceve un argomento di tipo MouseEventArgs.

MouseUp

Si verifica quando il puntatore del mouse è sopra il controllo e l'utente rilascia un pulsante del mouse. Il gestore di questo evento riceve un argomento di tipo MouseEventArgs.

MouseWheel

Si verifica quando l'utente muove la rotellina del mouse mentre il controllo è attivo. Il gestore di questo evento riceve un argomento di tipo MouseEventArgs. Per determinare l'entità dello scorrimento del mouse, utilizzare la proprietà Delta di MouseEventArgs.

Modifica dell'input del mouse e rilevazione delle impostazioni di sistema

È possibile rilevare e modificare la modalità con cui un controllo gestisce l'input del mouse mediante la derivazione del controllo e l'utilizzo dei metodi GetStyle e SetStyle. Il metodo SetStyle utilizza una combinazione bit per bit dei valori di ControlStyles per determinare se il controllo avrà un comportamento standard di un solo clic o di un doppio clic oppure se gestirà direttamente l'elaborazione del mouse. La classe SystemInformation, inoltre, comprende proprietà che descrivono le funzioni del mouse e specificano la modalità di interazione del mouse con il sistema operativo. Tali proprietà sono riepilogate nella tabella che segue.

Proprietà

Descrizione

DoubleClickSize

Ottiene le dimensioni, in pixel, dell'area in cui l'utente deve fare clic due volte affinché il sistema operativo consideri i due clic come un doppio clic.

DoubleClickTime

Ottiene il numero massimo di millisecondi consentiti tra il primo e il secondo clic affinché il sistema operativo consideri l'azione del mouse come un doppio clic.

MouseButtons

Ottiene il numero di pulsanti del mouse.

MouseButtonsSwapped

Ottiene un valore che indica se le funzioni dei pulsanti sinistro e destro sono state invertite.

MouseHoverSize

Ottiene le dimensioni, in pixel, del rettangolo entro il quale il puntatore del mouse deve soffermarsi per la durata necessaria prima che venga generato un messaggio visualizzato al passaggio del mouse.

MouseHoverTime

Ottiene il tempo, in millisecondi, per il quale il puntatore del mouse deve soffermarsi sul rettangolo prima che venga generato un messaggio visualizzato al passaggio del mouse.

MousePresent

Ottiene un valore indicante se è installato un mouse.

MouseSpeed

Ottiene un valore indicante la velocità corrente del mouse, da 1 a 20.

MouseWheelPresent

Ottiene un valore indicante se è installato un mouse dotato di rotellina.

MouseWheelScrollDelta

Ottiene il valore delta dell'incremento di una singola rotazione della rotellina del mouse.

MouseWheelScrollLines

Ottiene il numero di righe da far scorrere quando viene ruotata la rotellina del mouse.

Vedere anche

Concetti

Mouse capture in Windows Form

Puntatori del mouse in Windows Form

Altre risorse

Input del mouse in un'applicazione Windows Form