Intercettare posizione del mouse su schermo

martedì 15 giugno 2010 - 10.03

boc_babi Profilo | Junior Member

Ciao a tutti,

con questo codice

Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra

riesco ad avere le coordinate del mouse quando muovo il cursore sul form.

Però sul form ho posionato altri controlli (una cinquantina). Quando il mouse passa su questi controlli le coordinate si bloccano, ripartendo nel momento in cui abbandono il controllo.
Oltretutto l'evento che scatena il tutto è il MouseMove sul Form.

Domande:

1) è possibile ricevere le coordinate del mouse rispetto allo schermo e non rispetto ad un controllo ?
2) come faccio a non legare il tutto al MouseMove sul Form ? (avendo un touch-screen è possibile che il MouseMove sul Form non avvenga mai, se clicco per esempio su un controllo e poi su un altro; certamente non voglio gestire i MouseMove di tutti i controlli !!!)

Grazie, BOC

luigidibiasi Profilo | Guru

Per gestire le coordinate del mouse senza legarti agli eventi mousemove puoi pensare di usare mouseposition

http://msdn.microsoft.com/it-it/library/system.windows.forms.control.mouseposition.aspx
Luigi Di Biasi
http://blogs.dotnethell.it/luigidibiasi/
http://www.dibiasi.it/

boc_babi Profilo | Junior Member

Grazie Luigi,

ora sono in assistenza quindi non posso "testare" il tuo suggerimento.

Appena riesco lo guardo ed eventualmente accetto la tua risposta.

Grazie ancora, BOC

boc_babi Profilo | Junior Member

Il link che mi hai suggerito sembrerebbe fare al caso mio, ma il MousePosition chi lo aggiorna ???

Il codice è questo:

Public Overloads ReadOnly Property MousePosition() As Point Get cmdOnline.Text = MousePosition.ToString Exit Property End Get End Property

ma se metto un BreakPoint al suo interno, vedo che il programma non passa di qui.

Mi manca qualcosa !!!

Spiego brevemento quello che vorrei fare: cliccando con il mouse da qualsiasi parte dello schermo, che sia sul form o su un controllo non deve importare, memorizzo la coordinata Y del mouse, al rilascio del mouse memorizzo nuovamente la coordinata Y. Se la differenza delle 2 memorizzazioni è superiore ad un "tot" allora eseguo la riduzione ad icona della mia applicazione, altrimenti non faccio nulla. Praticamente l'utente deve simulare di prendere l'applicativo e spostarlo verso il basso.

Un altro dubbio che mi viene: come faccio a intercettare il click del mouse indipendentemente dal controllo su cui è stato fatto ??? Tieni conto che ho tanti controlli all'interno del form quindi vorrei evitare di gestire il mousedown di ogni controllo.

Spero di essere stato chiaro, grazie.
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?

Dopo esserti registrato potrai chiedere
aiuto sul nostro Forum oppure aiutare gli altri

Consulta le Stanze disponibili.

Registrati ora !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5