Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: Cj2009z en 2 Diciembre 2006, 01:36 am



Título: Igual que Office
Publicado por: Cj2009z en 2 Diciembre 2006, 01:36 am
Hola, que tal soy nuevo en el foro, espero poder contar con ustedes mi pequeña duda. veran tengo cinco cuadros de texto en una aplicación de visual basic 6.0 y lo que quiero es que al ingresar en el primer cuadro de texto cinco números incluyento letras, se pase al siguiente cuadro de texto y con este sucesivamente lo mismo, es decir así como cuando se ingresa la serial en office y/o windows. Cualquier ayuda y respeusta es bien recibida gracias. Espero que me puedan ayudar porque ya he buscado por todo el internte y he encontrado. graicas de antemano.


Título: Re: Igual que Office
Publicado por: IP3 en 2 Diciembre 2006, 02:12 am
Creo que es con LostFocus y GotFocus


Título: Re: Igual que Office
Publicado por: Cj2009z en 2 Diciembre 2006, 02:30 am
Me gustaria que me dieras un ejemplo porfa. No te imaginas cuando he buscado esta respuesta. porfa. gracias


Título: Re: Igual que Office
Publicado por: ReViJa en 2 Diciembre 2006, 10:08 am
Una manera simple que se me ocurre (si hay pocos campos) es:

Código:
Private Sub Form_Load()
   Text1.MaxLength = 5
   Text2.MaxLength = 5
   Text3.MaxLength = 5
   Text4.MaxLength = 5
   Text5.MaxLength = 5
End Sub

Private Sub Text1_Change()
   If Len(Text1) = 5 Then Text2.SetFocus
End Sub

Private Sub Text2_Change()
   If Len(Text2) = 5 Then Text3.SetFocus
End Sub

Private Sub Text3_Change()
   If Len(Text3) = 5 Then Text4.SetFocus
End Sub

Private Sub Text4_Change()
   If Len(Text4) = 5 Then Text5.SetFocus
End Sub

Si tienes muchos campos crea una matriz de controles.

Código:
Private Sub Form_Load()
   Txt(1).MaxLength = 5
   Txt(2).MaxLength = 5
   Txt(3).MaxLength = 5
   Txt(4).MaxLength = 5
   Txt(5).MaxLength = 5
End Sub

Private Sub Txt_Change(Index As Integer)
If Len(Txt(5).Text) = 5 Then
   'Opción de salida cuando llegue al ultimo textbox
Else
   If Len(Txt(Index)) = 5 Then Txt(Index + 1).SetFocus
End If
End Sub

OJO las matrices de controles empiezan en cero pero yo no lo uso.


Título: Re: Igual que Office
Publicado por: IP3 en 2 Diciembre 2006, 16:47 pm
Yo decia otra manera pero esa ya vale, o sea, cuando una el valor es "X" se quite el foco y de foco a otra, se hacia con variables etc, pero esa ya vale


Título: Re: Igual que Office
Publicado por: Cj2009z en 4 Diciembre 2006, 16:45 pm
Gracias amigos, me funciono a la perfección, los dos ejemplos estan perfectos. gracias.