Newsgroup: it.comp.lang.visual-basic
Titolo: tasto enter per passare da una textbox all'altra

Vorrei poter inserire, mediante digitazione, dei dati in diverse textbox e 
poter poi passare da una textbox all'altra utilizzando il tasto enter e non 
il solito tab.
Quali sono le istruzioni necessarie ??
Ringrazio sin da ora per l'aiuto.
cordiali saluti a tutti.
giap

 ha scritto nel messaggio 
news:47f20965$0$37207$4faf...@reader3.news.tin.it...


 Quali sono le istruzioni necessarie ??
Per .Net c'è qualcosa di apposta, tipo un movenext control, l'ho usato ma
non l'ho sottomano.
Per VB6:
Sostanzialmente io avevo dei progetti già fatti e ho fatto:
[Form KeyDown] (necessario KeyPreview=True per la form)
Call Key2Move(KeyCode, Shift) 'movimento nella form
' altro eventuale tuo codice
E la funzione (ripresa comunque dal NG)
Public Sub Key2Move(KeyCode As Integer, Shift As Integer)
If Shift = 0 Then 'Scorrimento con tasti freccia o Invio
  If KeyCode = vbKeyUp Then 
    KeyCode = 0
    SendKeys ("+{TAB}"), True
  End If
  If KeyCode = vbKeyDown Or KeyCode = vbKeyReturn Then 
    KeyCode = 0
    SendKeys ("{TAB}"), True
  End If
End If
End Sub
Questo funziona sostanzialmente di suo, forse ho dovuto mettere il TabStop
dei commandbutton=False.
Provalo e adattalo alle tue esigenze.

 ha scritto nel messaggio 
news:47f20965$0$37207$4faf...@reader3.news.tin.it...


Ringrazio tutti per l'aiuto ed in particolare Pietro Cama per la semplicità 
della soluzione.
Cordiali saluti a tutti
giap



Bhe in quel modo se aggiungi 10txt devi mettere il codice ovunque, se ne
sposti una devi lavorare sul codice.
Sfruttando il keyDown della form ti basta mettere la funzione su un modulo
e ti funziona per tutta la maschera.

"Andrea [Work]"

gia'. oppure mettendo i txt in una matrice e guardando alla sequenza degli 
index della matrice, basta una sub parametrata.
ciao, a.

 index della matrice, basta una sub parametrata.
Boh, io col mio sistema quando ho sistemato i TabIndex poi funziona da se.
Certo magari non è elegante fare il sendkeys, oppure tipo si vuole evitare
che sulle combo funzioni (allora uso Me.ActiveControl).
Comunque con una matrice se non ci sono variazioni frequenti va benissmo,
mi pare però che con i setfocus si saltino i _Validate o qualche altra
cosa. Inoltre in una maschera con TAB bisogna evitare di farlo andare di
fuori dal tab, quando basterebbe mettere il TabStop all'SSTab (ho notato
che se poi metti un frame dentro non funge lo stesso, ma vabbè :D)

Io rinnovo i ringraziamenti per tutti.
Devo perň dire che io non sono cosě bravo da seguire i suggerimenti proposti 
e quindi dal momento che le text box sono appena cinque il problema non č 
grosso.
Certo mi piacerebbe avere da chi ha seguito la discussione, le istruzioni 
complete da digitare nel listato, considerato il mio livello di conoscenza 
del VB6 e per evitare di dover ripetere tante volte linee simili di 
istruzioni.
Grazie comunque ancora a tutti.
giap

 ha scritto

crea un nuovo vbp
metti su form1 un text1 e fa' che il form sia largo abbastanza da contenerne 
5 affiancati.
nelle proprieta' del tuo text1, metti index --> 0
come codice del form incolla quello qui sotto.
spero sia utile, ciao, a.
(che in vb2008 gli faceva proprio schifo mantenere le matrici di controlli? 
:)
Option Explicit
Private Sub Form_Load()
    Dim j As Long
    For j = 1 To 4 '0  e' gia' impostato a designtime
        Load Text1(j)
        Text1(j).Top = Text1(0).Top
        Text1(j).Left = Text1(j - 1).Left + Text1(j - 1).Width + 60
        Text1(j) = "Text1(" & CStr(j) & ")"
        Text1(j).Visible = True
    Next
End Sub
Private Sub Text1_GotFocus(Index As Integer)
    Text1(Index).SelStart = 0
    Text1(Index).SelLength = Len(Text1(Index))
End Sub
Private Sub Text1_KeyPress(Index As Integer, KeyAscii As Integer)
     If KeyAscii = 13 Then
        If Index = Text1.UBound Then
            Text1(0).SetFocus
             'ovvero sposti il focus dove vuoi tu
        Else
            Text1(Index + 1).SetFocus
