Test Foro de elhacker.net SMF 2.1

Programación => .NET (C#, VB.NET, ASP) => Programación General => 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 (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
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.