Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
App. WinForms / WPF .NET
Intercettare i tasti..
martedì 29 giugno 2004 - 09.48
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
hydra
Profilo
| Junior Member
158
messaggi | Data Invio:
mar 29 giu 2004 - 09:48
Ciao ragazzi. Allora... In una finestra della mia applicazione devo processare determinati eventi tramite la pressione dei tasti su tastiera. Se processo tali eventi nella proprietà keydown della finestra, mi succede che quando premo un pulsante a video o cmq sposto il focus, non riesco a tornare al processo dei tasti se il focus non mi torna sul form. Ora, come posso fare perchè io possa controllare la pressione dei tasti sempre? Se alla fine del codice di ogni button, radiobutton ecc. metto un bel me.focus, non riesco comunque a ottenere il focus sul form. Qualcuno sa darmi una dritta di come fare? Grazie a tutti... :)
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
mar 29 giu 2004 - 12:32
hydra,
mi potresti postare il codice che utilizzi per intercettare i pusalnti? vorrei vedere che codice utilizzi, perchè io problemi a passare da un oggetto all'altro con il focus non ho problemi, comunque potresti utilizzare il metodo select in quanto in vb net avvolte il focus non è abbastanza potente.
prova a fare così: Me.Select()
ciao
Fabio
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
mar 29 giu 2004 - 22:45
Ahimè....non ho capito!!!
In una finestra, cioè in una certa Form, della quale avrai sicuramente impostato la proprietà KeyPreview a true, tu intercetti dei tasti e fin qui va tutto bene. Nn ho capito poi che succede....i tasti ti mandano su altre form? Altrimenti nn capisco il problema di rimettere il focus su quella originaria, ma se sei su una form diversa, Me.focus nn restituirà il focus a quella di partenza, ma lo confermerà a quella in cui ti trovi. Mi sono annodato?
Io intercetto i tasti su quasi tutte le form della mia applicazione e talvolta mi aprono altre form, ma probabilmente tu usi un sistema diverso dal mio. Potresti essere più chiaro o postare del codice?
Nn so se riuscirò ad aiutarti ma almeno vorrei capire cosa sta succedendo ! :-)
hydra
Profilo
| Junior Member
158
messaggi | Data Invio:
mer 30 giu 2004 - 13:56
Diciamo così, io sono su una form e i tasti mi servono per effettuare delle operazioni all'interno della form. Il tasto può essere ad esempio uno shortcut a un pulsante ma può anche andare a controllare delle periferiche esterne. Il mio problema è questo, se io metto il controllo dei tasti nell'evento keydown della finestra, quando premo un pulsante sulla finestra il focus mi passa sul pulsante, quindi io non riesco a controllare la pressione dei pulsanti. Per ovviare questo problema pensavo di mettere alla fine del codice di ogni pulsante o textbox o controllo in generale l'istruzione per tornare il focus alla form. Il problema è che non riesco a far tornare il focus dove mi interessa. Spero di essere stato chiaro e spero soprattutto che qualcuno mi possa aiutare. :)
trinity
Profilo
| Guru
3.465
messaggi | Data Invio:
gio 1 lug 2004 - 09:54
Usa il metodo select no focus ossia oggetto.select()
Ciao
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
gio 1 lug 2004 - 13:58
Tu scrivi:
se io metto il controllo dei tasti nell'evento keydown della finestra, quando premo un pulsante sulla finestra il focus mi passa sul pulsante, quindi io non riesco a controllare la pressione dei pulsanti. Per ovviare questo problema pensavo di mettere alla fine del codice di ogni pulsante o textbox o controllo in generale l'istruzione per tornare il focus alla form.
Continuo a nn capire. Io uso ad esempio il Ctrl+PgDwn per andare sull'ultimo record, senza dover cliccare sul pulsante appropriato. Tuttavia, talvolta uso il mouse per spostarmi e subito dopo uso la tastiera. In questo caso il focus era rimasto sull'ultimo pulsante. Altre volte edito una textbox e mentre il Caret (il cursore) è lì che blinka, quindi col focus sulla textbox, da tastiera do il comando di spostamento e il programma, dopo le validazioni opportune, lo esegue, senza problemi. Ma nn è che ti sei dimenticato di mettere la proprietà KeyPreview della Form = True?
alextyx
Profilo
| Expert
668
messaggi | Data Invio:
gio 1 lug 2004 - 14:06
E.....una volta che la form ha esaminato l'immissione, se nn vuoi che finisca ANCHE all'oggetto che ha il focus, devi mettere e.handled=true nella routine keydown della Form.
hydra
Profilo
| Junior Member
158
messaggi | Data Invio:
ven 2 lug 2004 - 08:17
Hai ragione, la proprietà KeyPreview = True me la sono dimenticata, anzi, non sapevo fosse da impostare. Adesso faccio le prove con i consigli che mi avete dato e poi vi faccio sapere. :)
Torna su
Stanze Forum
Elenco Threads
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 !