Autor Tema: (solucionado) Función Setfocus-Enter en Form  (Leído 3952 veces)

0 Usuarios y 1 Visitante están viendo este tema.

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
(solucionado) Función Setfocus-Enter en Form
« 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

Código: [Seleccionar]
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
« última modificación: Julio 20, 2014, 01:12:16 pm por aedEric »
No he fracasado. He encontrado 10000 soluciones que no funcionan.

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Función Setfocus-Enter en Form
« Respuesta #1 en: Julio 17, 2014, 08:03:26 pm »
Hola, haber proba asi

Código: [Seleccionar]
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
« última modificación: Julio 17, 2014, 08:13:50 pm por LeandroA »

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Función Setfocus-Enter en Form
« Respuesta #2 en: Julio 17, 2014, 08:15:08 pm »
Modifique

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Función Setfocus-Enter en Form
« Respuesta #3 en: Julio 17, 2014, 08:19:05 pm »
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
No he fracasado. He encontrado 10000 soluciones que no funcionan.

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Función Setfocus-Enter en Form
« Respuesta #4 en: Julio 17, 2014, 08:22:05 pm »
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
No he fracasado. He encontrado 10000 soluciones que no funcionan.

LeandroA

  • Administrador
  • Petabyte
  • *****
  • Mensajes: 1128
  • Reputación: +151/-8
    • Ver Perfil
Re:Función Setfocus-Enter en Form
« Respuesta #5 en: Julio 17, 2014, 08:37:00 pm »
grrr me parecia mas facil  >:(

haber si lo simple funciona

Código: [Seleccionar]
Private Sub Form_KeyPress(KeyAscii As Integer)

    If (KeyAscii = vbKeyReturn) Or (KeyAscii = vbKeySeparator) Then
        SendKeys vbTab
        KeyAscii = 0
    End If

End Sub

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Función Setfocus-Enter en Form
« Respuesta #6 en: Julio 17, 2014, 09:32:05 pm »
 ;D Leandro wooow muy agradecido solucionaste todo en pocas lineas muchisimas gracias saludos
No he fracasado. He encontrado 10000 soluciones que no funcionan.

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:Función Setfocus-Enter en Form
« Respuesta #7 en: Julio 19, 2014, 12:15:59 am »
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
No he fracasado. He encontrado 10000 soluciones que no funcionan.

aedEric

  • Megabyte
  • ***
  • Mensajes: 211
  • Reputación: +20/-0
    • Ver Perfil
Re:(solucionado) Función Setfocus-Enter en Form
« Respuesta #8 en: Julio 20, 2014, 01:13:14 pm »
 ;D Leandro muchas gracias tema solucionado
No he fracasado. He encontrado 10000 soluciones que no funcionan.