Foro de elhacker.net

Programación => Programación Visual Basic => Mensaje iniciado por: xucunhan en 7 Julio 2009, 05:35 am



Título: Problemas con Keycode
Publicado por: xucunhan en 7 Julio 2009, 05:35 am
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

 :)


Título: Re: Problemas con Keycode
Publicado por: byway en 7 Julio 2009, 06:07 am
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.


Título: Re: Problemas con Keycode
Publicado por: ssccaann43 © en 7 Julio 2009, 15:21 pm
Hola, Puedes intentarlo así. A mi me funciona perfecto!

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

Código
  1. Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
  2.    Dim CtrlDown
  3.  
  4.    CtrlDown = (Shift And vbCtrlMask) > 0
  5.    Select Case KeyCode
  6.        Case vbKeyF8
  7.            If bundo.Enabled = True Then
  8.                bundo_Click
  9.            End If
  10.        Case vbKeyF9
  11.            If bsalir.Enabled = True Then
  12.                bsalir_Click
  13.            End If
  14.        Case vbKeyF4
  15.            If bnew.Enabled = True Then
  16.            bnew_Click
  17.            End If
  18.        Case vbKeyF5
  19.            If bsave.Enabled = True Then
  20.            bsave_Click
  21.            End If
  22.        Case vbKeyF7
  23.            If bdel.Enabled = True Then
  24.            bdel_Click
  25.            End If
  26.        Case vbKeyP
  27.            If bnew.Enabled = True Then
  28.            VengoDe = "Facturacion"
  29.            FrmListaPedidosFac.Show vbModal
  30.            End If
  31.        Case vbKeyF
  32.            If bnew.Enabled = True Then
  33.            FrmListaFacturas.Show vbModal
  34.            End If
  35.    End Select
  36. End Sub
  37.  


Título: Re: Problemas con Keycode
Publicado por: xucunhan en 8 Julio 2009, 02:19 am
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.