TECLAS DE ATALHO

KILLER 14/05/2010 17:40:06
#341797
Pessoal pesquisei muito mais não encontrei quase nada a respeito

a situação é o seguinte: preciso criar teclas de atalho para o sistema
consegui utilizando o evento keydown mais ai esta o problema,
a tecla F2 - Abre o Cadastro de Clientes beleza funcionou

mais se eu coloco a combinação Shift + F2 para abrir o Cadastro de fornecedores
abre o Cadastro de Clientes

apenas uma tecla funciona perfeitamente, mais uma combinação de teclas não funciona

esse é o Código que eu uso

Select Case e.KeyCode
Case Keys.Escape
Sair()
Case Keys.F2
Clientes()
Case Keys.Shift, Keys.F2
Fornecedores()
Case Keys.F2
End Select

obrigado
FABIOPAGANINI 18/05/2010 09:27:22
#342039
Tenta mudar a a ordem.
primeiro teste se a sequencia Shift e F2 foram precionadas.
para depois testar se o F2 foi precionado.

porque neste seu teste, vc pergunta para o computador se o F2 foi pressionado. se sim, ele abre a janela clientes.

pois então. se vc preciona F2, qual a resposta do computador? será Sim (true)
agora a situação muda,
voce precionou shift + f2, e a pergunta é ( a tecla F2 foi pressionada?). A resposta é Sim.
logo, irá abrir a janela clientes. e nem irá continuar o case para tentar abrir fornecedores.


agora se tu inverter a ordem de perguntas, ja funciona.

a primeira pergunta tem que ser. A tecla Shift e a tecla F2 foram precionadas?

se seim, abre fornecedores, se não, verifica se apenas a tecla F2 froi precionada.


compreendeu?

KILLER 18/05/2010 10:48:21
#342061
tentei fazer da forma que voce colocou aí mais não deu certo não

quando pressiono somente F2 ele abre agora fornededores
quando pressiono somente Shif+F2 ele fornededores tambem
MENDESCCO 22/05/2010 10:30:36
#342512
Resposta escolhida
bom dia Killer.
no evento keydown do componente que quer colocar a combinação de teclas
utilize:

if Shift = 1 and keycode = vbkeyf2 then
procedimento
end if

esse procedimento somente funciona no shift + f2, para outras teclas tem que fazer as modificaçoes necessarias.

espero ter ajudado.
RICART 22/05/2010 12:50:18
#342520
Vc precisa utilizar o evento correto para poder usar a combinação de teclas. Veja esse exemplo:

Private Sub Form1_PreviewKeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PreviewKeyDownEventArgs) Handles MyBase.PreviewKeyDown
If e.Shift = True And e.KeyCode = Keys.F2 Then
MsgBox([Ô]vc clicou shift+f2[Ô])


End If
End Sub

JONATHANSTECKER 22/05/2010 13:15:41
#342522
Conforme seu modelo...

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

Select Case e.KeyCode
Case e.Shift = True And Keys.F2
MsgBox([Ô]Você pressionou as teclas SHIFT+F2[Ô], MsgBoxStyle.Information)
Case Keys.F2
MsgBox([Ô]Você pressionou a tecla F2[Ô], MsgBoxStyle.Information)
Case Keys.Escape
MsgBox([Ô]Você pressionou a tecla ESC[Ô], MsgBoxStyle.Information)
End Select

End Sub

Jonathan Stecker
KILLER 24/05/2010 08:45:25
#342593
vlw pessoal funcionou
Tópico encerrado , respostas não são mais permitidas