USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Tratar pressionamento de teclas no form
Eh Nhois
SAO PAULO
SP - BRASIL
Postada em 29/11/2006 11:31 hs         

Bom dia galera!!!

Uso o seguinte, para tratar o pressionamento das teclas page down, page up, enter, etc.

'--------------------------------------------------------------------

Private Sub txtEcaFolha_KeyDown(Index As Integer, KeyCode As Integer, Shift As Integer)

If KeyCode = 34 Then 'Page Down

cmdProximo_Click

ElseIf KeyCode = 33 Then 'Page Up

cmdAnterior_Click

ElseIf KeyCode = 115 Then 'Tecla F4

If fraEventos(0).Visible = True Then

Call cmdMais_Click(0)

Else

Call cmdMais_Click(1)

End If

End If

End Sub

Private Sub txtEcaFolha_KeyPress(Index As Integer, KeyAscii As Integer)

If KeyAscii = 13 Then 'Enter

KeyAscii = 9

SendKeys "{Tab}"

End If

End Sub

'--------------------------------------------------------------------

A minha pergunta é: como faço para tratar o pressionamento dessas teclas em qualquer lugar do form, independentemente de onde está o foco?

Será que fui claro? Por exemplo, não importa em que lugar do formulário eu estiver, quando presssionar F5 faça isso ou aquilo.

Agradeço antecipadamente.

Gelson

     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 29/11/2006 11:53 hs            
experimentou colocar no evento keydown do form?? coloca a propriedade keypreview = true... para facilitar coloque o código numa sub para q no caso de reutilizar o código em vários lugares acesse em uma só fonte...
 
veja se ajuda ae...
 
at+
     
Eh Nhois
SAO PAULO
SP - BRASIL
Postada em 29/11/2006 13:07 hs         
Valeu a resposta ghost, mas já tinha tentado e não deu certo. Agora, com a sua sugestão, tentei com o keypreview = true. Não sei se fiz certo, mas também não foi.
 
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer)
KeyPreview = True
If KeyCode = 115 Then
    If fraEventos(0).Visible = True Then
        Call cmdMais_Click(0)
    Else
        Call cmdMais_Click(1)
    End If
End If
End Sub
     
ghost_jlp
Pontos: 2843 Pontos: 2843 Pontos: 2843 Pontos: 2843
SÃO PAULO
SP - BRASIL
Postada em 29/11/2006 13:19 hs            

experimenta colocar o KeyPreview = True é em tempo de design...

Sei q vai funcionar se vc clicar em alguma parte vazia do form... só não sei se funcionará se o foco estiver em algum controle como um textbox...

testa ae... depois reporta

at+

     
Tekki
Pontos: 2843 Pontos: 2843 Pontos: 2843
UBERLÂNDIA
MG - BRASIL
Postada em 29/11/2006 13:20 hs            
Eh Nhois, use o KeyPreview = True no Load do form não use no Keycode nem no Keypress
 
Pelo fato do KeyPreview estar como False ele nunca vai chamar o
Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) por isto não deu certo no seu código.
 
Você também pode alterar a propriedade do KeyPreview  na janela de propriedades do form.
     
Eh Nhois
SAO PAULO
SP - BRASIL
Postada em 29/11/2006 13:41 hs         
VALEU GALERA!!! Deu certo.
Voces são os caras!!!
 
Um dia chego lá.
     
Página(s): 1/1    

CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página