Newsgroup: it.comp.lang.visual-basic
Titolo: L'ultimo tasto premuto compreso il mouse.

Esite il modo di sapere qual'è l'ultimo carattere premuto considerando
insieme sia la tastiera che il mouse?
Dalle prove che ho fatto (su KeyPress, MouseDown, ecc.) non mi sembra.
Grazie, Sauro

 
Se ho intuito dai tuoi "nevrotici" post cosa vuoi fare, credo che 
l'unico modo sia una tua variabile che memorizza il nome di un controllo 
quando ottiene il focus.
Avevo fatto una cosa simile qualche tempo fa' ed e' una faticaccia, anzi 
e' uno schifezzo da gestire e da debuggare.
Se sei piu' preciso su cio' che vuoi fare magari qualche soluzione emerge.
ciao
	maxx
-- 
NOSPAM: Rimuovere i trattini dallo username!
Cut hyphens from my username!

 maxx
Se ho sbagliato in qualcosa nei miei post cercherò di correggermi.
Scusa, perchè sono nevrotici?
Forse perchè ne ho inviati 3 quasi contemporaneamente?
Mi è sembrato opportuno frazionare in domante sintetiche.
Non va bene?
Cercherò ti riepilogare cosa deve fare il mio usercontrol:
- è un textbox che contiene, come proprità, il nome di una tabella, di un
campo di tabella e dell'indice della tabella.
- l'utente digita un codice e preme TAB
- una funzione ricerca il record (praticamente una anagrafica) con DAO. se
lo trova tutto finisce li e lo usercontrol perde il fuoco.
- in caso contrario la funzione memorizza su un array stringa un certo
numero di anagrafiche partendo da quanto digitato (per esempio: se digitato
ROS potrebbe partire da ROSSI)
- Si apre una finestra (un form collegato) per far scegliere all'utente la
singola anagrafica desiderata.
Il problema è che mentre l'utente sceglie, lo UserControl perde il fuoco e
succede un gran casino.
Per ovviare a questo problema ho aggiunto nello UserControl un secondo
textbox (nascosto a video ma Visible e Enabled).
Quando la ricerca è terminata invio un TAB con SandKeys ed è tutto a posto.
Almeno così credevo.
In realtà funziona correttamente solo se l'utente procede spostandosi in
avanti tra i vari controlli premendo TAB.
Se invece gli viene in mente di cliccare col mouse su di un controllo
successivo (poniamo il dedcimo del form), il focus finisce sull'undicesimo.
Evidentemente il TAB inviato viene eseguito successivamente all'uscita dal
controllo e non so perchè.
Speravo di poter risolvere così:
IF IlTastoCheHaCausatoIlLostFocus = TAB Then
    SendKeys(TAB)
End If
Chissà se mi sono spiegato?
Ciao, Sauro

 End If
Il tasto Tab è generalmente non intercettabile (su un form normale solo
quando non vi sono altri controlli che possono prendere il fuoco, vuoi
perchè invisibili, disabilitati o con TabStop=False o, in ultimo, totalmente
assenti)
E, appunto, se non è un tasto, ma un click del mouse altrove? Insisto: UC ha
un evento corrispondente al LostFocus (Terminate, Close, qualcosa del
genere)? Esegui quel che devi in quel punto, fregandotene del motivo per cui
il tuo UC sta perdendo il fuoco.

 
Chissa'?!
:-)


Lupo ha scritto:

E' proprio al LostFocus del textbox che inizio a processare quanto digitato.
Comunque i tuoi suggerimenti e quelli di Maxx non sono stati inutili.
Ho capito che non esistono altri "strumenti" per raggiungere l'obiettivo
Dovrò riflettere e cambiare qualcosa nella logica della mia routine.
Prima o poi ci riuscirò.
Scusatemi se l'ho fatta un po' lunga (è un modo di dire delle nostre parti);
ma sto girando intorno a questo problema da un paio di settimane.
Grazie e saluti, Sauro.