Newsgroup: it.comp.lang.visual-basic
Titolo: Intercettare click

Salve a tutti, ho il seguente problema
ho un form con 30 textbox e vorrei intercettare con un unico evento
qualsiasi click del mouse effettuato nei textbox, ho già provato ad
attivare il keypreview ma funzione solo con la tastiera.
grazie
dp

 ha scritto nel messaggio 
news:1146828273.8...@y43g2000cwc.googlegroups.com...


 funzione solo con la tastiera.
Devi utilizzare una matrice di controlli.
In parole povere, devi chiamare tutti i controlli TextBox
con lo stesso nome, e valorizzare la proprieta' Index
con un numero univoco per controllo (generalmente si usa
progressivo in base 0).
Supponendo di avere una matrice di TextBox, di nome
txtInput, potrai accedere ai singoli controlli con:
txtInput(0), txtInput(1), txtInput(2), eccetera.
L'evento Click (come tutti gli altri eventi)  avra' un
parametro aggiuntivo Index che indica l'indice del controllo
che ha scatenato l'evento (ad es. su quale controllo e' stato
effettuato il click).
Il seguente codice ti permette di selezionare tutto il testo
di una TextBox, in una matrice di controlli, non appena
questa prende il Focus:
Private Sub txtInput_GotFocus(Index As Integer)
    txtInput(Index).SelStart = 0
    txtInput(Index).SelLength = Len(txtInput(Index).Text)
End Sub
hth,
Lokar 

Il problema è che sono in realtà 150 textbox organizzate come gruppo
di 30 ognuna come matrice di 5 elementi, e non posso fare diversamente.
Mi basterebbe intercettare il click del mouse generico,
è già un bel pò che cerco ma non trovo nulla di soddisfacente.
dp

[ddpp]

Forse cerchi le cose sbagliate.
La tecnica si chiama SubClassing, e nella fattispecie e' nota
anche come Mouse Hook (Keyboard Hook se devi gestire la tastiera).
Con queste 3 paroline magiche dovresti trovare una valanga di codice,
tutorial ed esempi.
hth,
Lokar

 ha scritto nel messaggio 
news:1146830198.3...@v46g2000cwv.googlegroups.com...

E' un bel bordello.
Imho, fai prima a crearti una funzioncina stupida da richiamare all'interno 
dei 30 textbox e amen...

 anche come Mouse Hook (Keyboard Hook se devi gestire la tastiera).
Err...non vorrei essere pignolo, ma SubClassing Hooking sono due cose un 
tantino diverse ;-D

 ha scritto nel messaggio 
news:1146828273.8...@y43g2000cwc.googlegroups.com...


 sono due cose un tantino diverse ;-D
Sono stato un po' approssimativo, in effetti, ma SubClassing e Hooking non sono poi cosi' diverse. 
Entrambe le tecniche permettono di intercettare un messaggio nella catena di messaggi di Windows, 
prima che questo venga processato dal controllo/window.
Nel funzionamento di Windows, i messaggi vengono "smistati" fra le varie WindowProc delle window in 
esecuzione (e per la precisione gli eventi di mouse e tastiera sono normalmente indirizzati alla 
window che ha il focus).
Il SubClassing consiste nel sostituire la WindowProc della finestra/controllo e di elaborare 
"manualmente" i messaggi quando gia' sono stati smistati.
Lo Hooking consiste nell'agganciarsi (con opportune API) a monte della catena di messaggi, 
prelevando quindi il messaggio _prima_ che venga elaborato da Windows ed inoltrato alla WindowProcm 
e decidendo in anticipo cosa farne.
A seconda del raggio di controllo che si ha intenzione di ottenere si puo' intervenire a livello 
piu' dettagliato (Subclassing sulla singola window), o piu' esteso (hook sull'intero sistema).
Nell'uno e nell'altro caso il meccanismo consiste in:
- Agganciarsi alla coda
- Ascoltare i messaggi
- Processare/Inoltrare i messaggi
- Sganciarsi dalla coda
Spero di aver chiarito il meccanismo, e chiedo scusa per l'imprecisione.
Lokar