Dilemma su come risolvere lo spostamente del focus da la treeview alla...

domenica 14 ottobre 2007 - 23.37

trinity Profilo | Guru

sto ancora capendo perchè se clicco su un node della treeview e riporto i dati dentro delle textbox e poi volendo spostare il focus nella prima textbox questo non accade.
Pure eseguendo il comando Me.TextBox1.Focus dopo tutto il codice che utilizzo al click del nodo questo non avviene.

io posto il codice se qualcuno riuscisse a dirmi il perchè.
Ma chiedo è possibile che il focus non si sposta perchè il click del nodo e lo spostamento del focus avvengono in uno stesso thread ?

Se fosse questa la causa come posso nell'evento Treeview_Afterselect avviare un thread diverso dove elaboro i dati ed eseguo il textbox1.focus?

Ciao e grazie

codice:

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

Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
http://wnetsoftware.blogspot.com

alextyx Profilo | Expert

Ho lavorato una sola volta col treeview, ma almeno 2 o 3 volte ho battuto la testa con i focus. Abbastanza da cercare di starne alla larga il più possibile. Purtroppo, mentre se lavorassi nell'evento mouseup del treeview (cliccando non su uno specifico nodo), avresti la possibilità di assegnare stabilmente il focus ad una textbox, quando selezioni un nodo, si scatena di seguito al mouseup, anche l'evento afterselect e le operazioni che vengono eseguite sul treeview, ottengono come risultato di riagguantare il focus per lo specifico nodo selezionato.
Ribadendo la mia non conoscenza dell'oggetto, che potrebbe disporre di un evento in cui fare l'operazione che ti serve, ti propongo una soluzione quick and dirty, ma moooolto dirty, tanto che volevo postarla con uno pseudonimo!:
L'utilizzo di un timer!
In pratica devi lasciare 'sfogare' gli eventi sul treeview e poi assegnare il focus alla textbox, oppure, come ho fatto nell'esempio che, vergognosamente, sto per proporti, disabilitare temporaneamente il treeview, impedendogli di riacquistare il focus:


Il codice sorgente non è stato renderizzato qui
perchè non c'è sufficiente spazio.
Clicca qui per visualizzarlo in una nuova finestra
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-2025
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5