Simulare un Tab... in una form funziona, in un'altra no!!!

venerdì 13 febbraio 2009 - 12.16

framur Profilo | Newbie

Salve, nel mio applicativo mi accade di aprire due finstre differenti, nelle quali c'è una text box matricola che quando perde il focus valida dei dati e fa altre cose.
Per aprire le finestre, immettere la matricola e scatenare l'evento leave mediante la simulazione di una pressione del tab uso lo stesso codice
Dim frm As New MIAFORM1
frm.txtMt.Text = lstElenco.SelectedItems.Item(0).Text() ' ci metto la matricola
frmsituazionearma.Show()
frmsituazionearma.Focus()
SendKeys.Send("{TAB}")


Dim frm As New MIAFORM2
frm.txtMt.Text = lstElenco.SelectedItems.Item(0).Text() ' ci metto la matricola
frmsituazionearma.Show()
frmsituazionearma.Focus()
SendKeys.Send("{TAB}")

Nel primo caso dove la txtMT è posizionata direttamente nel form funziona, nella seconda form in cui txtMT è posizionata in un groupbox non funziona.

Come mai??
PS: ho provato anche a dare il focus al controllo, al groupbox ma non funziona lo stesso

Jeremy Profilo | Guru

Ciao framur,
Sbagli approccio.
Non ha molto senso "simulare la pressione del tasto TAB" per posizionare il focus su di un controllo.
Devi usare il metodo Focus del controllo stesso.

Riguardo all'anomalia che segnali, è del tutto normale, in quanto il groupbox è, di fatto, un controllo(probabilmente anche il primo dell'ordine di tabulazione del tuo form), quindi, alla pressione di un ipotetico tasto TAB, è lui a prendere il focus e non il controllo al suo interno.

Facci sapere...
Ciao.

framur Profilo | Newbie

Ciao...
a me non serve la simulazione del tasto tab per cambiare focus ... serve per scatenare in maniera automatica l'evento leave.
Ci sono altri sistemi?


Jeremy Profilo | Guru

>Ciao...
Ciao
>a me non serve la simulazione del tasto tab per cambiare focus
E' lo stesso
>... serve per scatenare in maniera automatica l'evento leave.
Non hai bisogno di scatenare l'evento leave per eseguire il codice in esso contenuto.
Puoi creare una Sub che viene eseguita sia dall'evento Leave che da qualsiasi altro evento.
Oppure...all'apertura del form....richiami direttamente la Sub assegnata all'evento Leave.

Facci sapere...
Ciao
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-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5