Newsgroup: it.comp.lang.visual-basic
Titolo: INVIO come TAB

Salve a tutti
ho la necessità di passare da una textbox all'altra sia con il tasto TAB
(come fa automaticamente) che con il tasto INVIO sfruttando sempre la
proprietà TabIndex. Ho provato ad intercettare il tasto nell'evento KeyPress
facendo una cosa del genere ma non funziona :
if KeyAscii=vbKeyReturn then
   KeyAscii=vbKeyTab
end if
il fatto è che non vorrei assegnare il focus al controllo seguente "a mano"
ma appunto usare automaticamente il TabIndex
Grazie a tutti


io uso questa funzione
Public Sub ogEnterTab(ByRef KeyAscii As Integer)
'----------------------------------------------------------------------
  ' PURPOSE:
  '     Quando premi invio vai al prossimo oggetto in tabindex
  '  BY NIKS - 
ELDAPC.IT
  ' RETURN:
  '     Modifica il KeyAscii
  ' NOTA:
  '     Da legare ad un KeyPress
'----------------------------------------------------------------------
  If KeyAscii = vbKeyReturn Then 'enter key
    SendKeys "{Tab}"
    KeyAscii = 0
  End If
End Sub
e poi dentro il keypress ad esempio lancio questa funzione
Private Sub optCorsie_KeyPress(KeyAscii As Integer)
  ogEnterTab (KeyAscii)
End Sub

forse puoi usare SendKeys invece di riassegnare un valore a keyascii.
l'ho fatto anche io e se non ricordo male funzionava.
MarioH

"marco"

if KeyAscii=vbKeyReturn then
   SendKeys = "{TAB}"
end if
Naturalmente, però, non funziona se nel form hai un commandbutton, la cui
proprietà 'default' è settata su true.
nonsonostatoio

 End Sub
Ottima!!! L'ho gia' messa da parte, pero'....
Ho vari controlli su una form, textbox e button, e non vorrei
dover aggiungere la chiamata alla funzione sul keypress di
ogni controllo.....
Ho provato a mettere la chiamata sul keypress della form,
ma non va... si puo' fare qualcosa?
Grazie.


Purtroppo non ci sono altre possibiltą..
<><><><><> NIKS DEVELOPMENT ENTERPRISE <><><><><> 

io ho risolto il problema cosě:
private sub Form_KeyPress (KeyAscii as integer)
    if KeyAscii=vbKeyReturn then
        select case Me.ActiveControl.TabIndex
            case txt01.TabIndex
                txt02.SetFocus
            case txt02.TabIndex
                txt03.SetFocus
            case txt03.TabIndex
                txt01.SetFocus
        end select
         KeyAscii=0
    end if
end sub
In questo modo un una sola procedura puoi vedere e decidere lo scorrimento
delle caselle
Notare l'istruzione KeyAscii=0 : serve a non far riprodurre un BEEP ogni
volta che premi INVIO.

 Purtroppo non ci sono altre possibiltà..
beh, tempo fa il grande DBG ha scritto una funzione del genere
che utilizza il Form_Keypress. dagli uno sguardo
http://vbsimple.virtualave.net/howto/004.htm
(ricordati di cambiare il tasto perché utilizza il §)
--
Fibia "Sakamoto" FBI
E-mail: 
fibi...@hotmail.com
ICQ UIN 63586057
Sito Personale: 
http://www.geocities.com/fibiafbi
VB Simple: 
http://vbsimple.virtualave.net
Membro #25 delle Mitiche Brigate Takahashi sezione Sud

beh, tempo fa il grande DBG ha scritto una funzione del genere
[snap]
gia', Dbg ... se ne sente un po' la mancanza :(
dici che fara' ancora un salto da queste parti ?
ciao, hal

 dici che fara' ancora un salto da queste parti ?
da quanto ne so no.
cmq ci sentiamo regolarmente due volte a settimana via mail
P.S. ti ho lasciato ieri un memo su irc e mi ha raccomandato di
salutarti tanto.
/memoserv read all


/memoserv read all
^__^

da quanto ne so no.
Come mai e' andato via? Io non ero sul gruppo mentre se n'e' andato,
ho notato che non c'e' piu', ma non so il motivo e non so come mai non
dovrebbe ritornare.
Saluti.
-- 
      Gianni "bugbarbeq" Rondinini, 25, RA, 242, 152
  VBR - Vero Birro Romagnolo®, diffidate dalle imitazioni!
 Opel/ECC Calibrezio EVO-VI --- Kawasaki "Gas Gas" ZZ-R 1100
 ICQ# 36893168 - IRCNet: bugbarbeq, @ on #linux-it & #NetBSD
   On contrary of popular belief, Unix *IS* user friendly:
    it just appears to be selective who it is friend with

 dovrebbe ritornare.
eheh.. magari prova a cercare su google
non ritengo corretto riaprire questa discussione sul ng.
ciao
