none
Keypress

    Pergunta

  • Boa tarde,

    Pessoal,

    Estou encontrando dificuldade em usar o ebento Keypress no objeto DTPicker (data).
    NO form está setado a opções de Keypreview = true.
    Utilizo o seguinte código:

    Private Sub DTPick_KeyPress(Index As Integer, KeyAscii As Integer)
    If KeyAscii = 13 Then SendKeys ("{TAB}")
    End Sub

    Rodo o programa e ao pressionar o ENTER nada acontece.

    Alguém pode me dar uma dica?


    Att Sérgio Gurgel
    quarta-feira, 26 de dezembro de 2007 18:14

Todas as Respostas

  • Capture o keyUp.

     

    Code Block

    Private Sub DTPic_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dtRef.KeyUp

            If e.KeyValue = 13 Then xxxxxxxxxx 

    End Sub

     

     

     

    Abs,

    quarta-feira, 26 de dezembro de 2007 20:10
  • Você pode tentar usar os eventos KeyPress, KeyDown ou KeyUp do seu form, ao invés dos eventos do objeto. Aí então você verifica qual é o objeto ativo.

     

    Exemplo (VB.NET):

     

    Private Sub form_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown

    If e.KeyCode = Keys.Enter Then

    If Me.ActiveControl.Name.ToLower = "dtpick" Then

    Me.ProcessTabKey(True)

    End If

    End If

    End Sub

     

    Espero ter ajudado.

     

    Atenciosamente,

    quinta-feira, 27 de dezembro de 2007 10:27
  • Pessoal,

    Os modelos sugeridos são para VB.net e  eu utilizo VB6.
    Alguém tem como me enviar nesse padrão?

    quinta-feira, 27 de dezembro de 2007 16:41
  • Sérgio,

     

    Para o VB6 é assim:

     

       If KeyAscii = 13 Then
          SendKeys "{Tab}"
          KeyAscii = 0
       End If

    quinta-feira, 27 de dezembro de 2007 19:31
  • Sérgio, não tenho o VB6 aqui, e não sei quais os parâmetros que são passados através do KeyDown por exemplo.

     

    Mas a idéia que dei é você utilizar o evento KeyDown do seu FORM (não do objeto), e verificar se a tecla pressionada foi o Enter. Depois disso, você verifica se o controle ativo é o que você deseja (acho que no VB6 é Me.ActiveControl.Name também)...

     

    Atenciosamente,

    sexta-feira, 28 de dezembro de 2007 12:35