Gestione del Tab e Shift+Tab in vbnet 2005

lunedì 30 ottobre 2006 - 12.03

trinity Profilo | Guru

Ragazzi io mi devo spostare tra delle text con il tab e shift+tab, senza utilizzare la proprietà TabIndex
C'è un modo per farlo in vbnet2005? io prima utilizzavo la seguente libreiria:

Public Declare Function GetAsyncKeyState Lib "user32" Alias "GetAsyncKeyState" (ByVal vKey As Keys) As Short

solo che il tab me lo gestisce bene ma quando premo Shift+tab per tornare indietro tra le text, lui esegue sempre il codice del tab...

ecco cosa faccio per esempio nell'evento validating

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

se premo tab esegue giustamente il codice...ma se il focus si trova su textbox6 e premo shift+tab per tornare indietro lui esegue di nuovo il codice come se fosse stato premuto il tab..
ho controllato il valore della GetAsyncKeyState(Keys.Tab) ed è lo stesso sia se premo ta sia se premo shift+tab...

Sapete darmi una mano?
Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/

sanbiz Profilo | Senior Member

Hai provato a verificare anche il valore di Shift oltre che quello di Tab?
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

trinity Profilo | Guru

ho messo prima della if come da esempio postato precedentemente una msgbox di questo genere:

MsgBox(GetAsyncKeyState(Keys.Shift))

e premendo shift+tab mi da come risultato = 0

mentre se metto

MsgBox(GetAsyncKeyState(Keys.Tab))

e premo shift+tab il risultato è = -32767 identico al valore che si genera premendo solamente Tab



aspetta però....

ho provato a cambiare il codice, ho scritto così e pare che funziona:


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


secondo te può andare bene?

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

sanbiz Profilo | Senior Member

>secondo te può andare bene?

Perchè non metti tutto nella stessa IF?

If GetAsyncKeyState(Keys.Tab) < -1 And GetAsyncKeyState(Keys.ShiftKey) < -1 Then
end if
--
Sandro Bizioli
http://blogs.dotnethell.it/sandro/

trinity Profilo | Guru

sai cosa mi succede non sempre appena apro la form e scrivo in una textbox e poi premo il tab mi accetta la funzione If GetAsyncKeyState(Keys.Tab) < -1 mi riporta = 1 poi se ci ripasso sopra e premo tab mi esce come valore inferiore ad 1 quindi esatto e mi esegue correttamente il tab

sai come mai?

Ciao
Cirillo Fabio
www.wondernet.biz
fabio@wondernet.biz
http://blogs.dotnethell.it/fabiocirillo/
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