Visual Basic Foro
Programación => Visual Basic 6 => Mensaje iniciado por: aedEric en Julio 17, 2014, 07:47:03 pm
-
Hola buenas Tardes tengo la siguiente funcion para poder pasar el foco al siguiente control (textbox,combobox,checkbox, etc para no estar programando control por control) con la tecla enter el detalle es que no funciona si los controles estan dentro de un contenedor marca error el control no acepta esta propiedad asi que le puse un control de errores el de talle que si el siguiente control esta con la propiedad enable en false se detiene y ya no pasa el foco, espero alguien pueda orientarme con sus opiniones o sugerencias para terminar la función de antemano gracias
proyecto
https://www.dropbox.com/s/i06miisr3u14yr6/Prueba.rar?dl=1 (https://www.dropbox.com/s/i06miisr3u14yr6/Prueba.rar?dl=1)
Private Sub Form_KeyPress(KeyAscii As Integer)
Dim iTI As Integer
Dim i As Integer
If (KeyAscii = vbKeyReturn) Or (KeyAscii = vbKeySeparator) Then
If Screen.ActiveControl.TabIndex = _
Count - 1 Then
iTI = 0
Else
iTI = Screen.ActiveControl. _
TabIndex + 1
End If
For i = 0 To Count - 1
On Error GoTo Handler
If Me.Controls(i).TabIndex = _
iTI Then
Me.Controls(i).SetFocus
Exit For
End If
StartHere:
Next i
KeyAscii = 0
End If
Exit Sub
Handler:
Resume StartHere
End Sub
poner la propiedad Keypreview =true en form
de antemano gracias saludos
-
Hola, haber proba asi
Private Sub Form_KeyPress(KeyAscii As Integer)
On Error Resume Next
Dim iTI As Integer
Dim i As Integer
If (KeyAscii = vbKeyReturn) Or (KeyAscii = vbKeySeparator) Then
Err.Clear
If Screen.ActiveControl.TabIndex = Count - 1 Then
iTI = 0
Else
iTI = Screen.ActiveControl.TabIndex + 1
End If
For i = 0 To Count - 1
If Me.Controls(i).TabIndex = iTI Then
Me.Controls(i).SetFocus
If Err.Number Then
Err.Clear
iTI = iTI + 1
Else
Exit For
End If
End If
Next
KeyAscii = 0
End If
End Sub
-
Modifique
-
Hola Leandro antes que nada gracias por tomarte la molestia de leer y apoyarme pero que crees copie tu aportación pero sigue sin funcionar si establesco algun control con la popriedad enable se detiene y no pasa el foco
y tambien marca el error que un control no acepta esa propiedad por en el tab del ejemplo del proyecto de antemano gracias espero me puedas encontar la solución de antemano gracias saludos
-
perdon respondi tarde leandro gracias, que crees sigue sin pasar el foco si pongo el combo en enable = False
de antemano gracias por tomarte la molestia de apoyarme muy agradecido
-
grrr me parecia mas facil >:(
haber si lo simple funciona
Private Sub Form_KeyPress(KeyAscii As Integer)
If (KeyAscii = vbKeyReturn) Or (KeyAscii = vbKeySeparator) Then
SendKeys vbTab
KeyAscii = 0
End If
End Sub
-
;D Leandro wooow muy agradecido solucionaste todo en pocas lineas muchisimas gracias saludos
-
Hola Leandro disculpa por molestarte de nuevo fijate que hoy al probar el código de nuevo que realizaste funciona muy bien sólo que al precionar la tecla "l" minuscula tambien pasa el foco al siguiente control (como si se precionara enter) si teclo la letra "L" mayuscula no hay problema solo sucede al teclear la letra minuscula de antemano espero y agradecere me puedas apoyar de nuevo gracias saludos
-
;D Leandro muchas gracias tema solucionado