Problemas con Keycode

Iniciado por xucunhan, 7 Julio 2009, 05:35 AM

0 Miembros y 2 Visitantes están viendo este tema.

xucunhan

Que tal salu2 para to2  ;D

Tengo un problemilla simple, el cual no he podido resolver jaja.
Estoy haciendo una aplicación y necesito que sea lo más operable posible con el teclado, por ejmplo:
el boton cmdAceptar  se acciona tanto pulsandolo como oprimiendo la tecla F2, la bronca es oprimo hasta 2 veces seguidas únicamente tal boton, al pulsar F2 por tercera ocasion ya no se ejecuta lo que hace el boton, y vuelve a ejecutarse hasta que algun otro control tome el foco.

El code que estoy usando es:

If KeyCode = vbKeyF1 Then
    frmNuevoCliente.Show 1
   
   
    ElseIf KeyCode = vbKeyF2 Then
    cmdEditar_Click
   
        ElseIf KeyCode = vbKeyF3 Then

            ElseIf KeyCode = vbKeyF4 Then
            cmdTodos_Click
           
                    ElseIf KeyCode = vbKeyF5 Then
                    optnom.Value = True
                         
            ElseIf KeyCode = vbKeyF6 Then
            opttel.Value = True
       
  ElseIf KeyCode = vbKeyF7 Then
  optdir.Value = True
 
End If

KeyCode = 0

Seguiré googleando para ver posibles respuestas y espero puedan postear algunos tips. Gracias

:)

byway

lo ideal es usar combinacion de teclas, F1 es ayuda del winbug...
hay otra manera de hacer esto mas eficiente registrando las keys, usando un timer o con un hook al teclado...

Pero lo que quieres hacer con los botones lo hace el visual basic en el caption pones la _ debajo de la letra que kieras usar en la combinacion de tecla .. con un simple & delante de la letra que kieras usar:

&Abrir  , la combinacion seria Alt + a para presionar el boton.

Saludos.

ssccaann43 ©

Hola, Puedes intentarlo así. A mi me funciona perfecto!

Debes asignarle el valor True a la propiedad KeyPreview del Form. Saludos

Código (vb) [Seleccionar]

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
    Dim CtrlDown
   
    CtrlDown = (Shift And vbCtrlMask) > 0
    Select Case KeyCode
        Case vbKeyF8
            If bundo.Enabled = True Then
                bundo_Click
            End If
        Case vbKeyF9
            If bsalir.Enabled = True Then
                bsalir_Click
            End If
        Case vbKeyF4
            If bnew.Enabled = True Then
            bnew_Click
            End If
        Case vbKeyF5
            If bsave.Enabled = True Then
            bsave_Click
            End If
        Case vbKeyF7
            If bdel.Enabled = True Then
            bdel_Click
            End If
        Case vbKeyP
            If bnew.Enabled = True Then
            VengoDe = "Facturacion"
            FrmListaPedidosFac.Show vbModal
            End If
        Case vbKeyF
            If bnew.Enabled = True Then
            FrmListaFacturas.Show vbModal
            End If
    End Select
End Sub
- Miguel Núñez
Todos tenemos derechos a ser estupidos, pero algunos abusan de ese privilegio...
"I like ^TiFa^"

xucunhan

Gracias byway, pero eso que decis del & lo se, en cuanto al registro de keys puede ser una opcion junto con los hooks.

Ahora estoy probando la alternativa de ssccaann43 y parace funcionar hasta el momento.

Gracias a los dos.