Abaixo há um código simples onde quando usuário pressionar a tecla "ENTER" (Return), seja enviado ao sistema a tecla "TAB".
Vamos agora aos passos necessários:
1° - setar no formulario a propriedade Key Preview para Tru.
2° - ir no evento KeyDown do formulario, esse evento é disparado quando alguma tecla é pressionada no sistema.
3° - colocar o seguinte código dentro desse evento.
if (e.KeyCode == Keys.Enter)
{
if (e.Shift)
{
SendKeys.Send("+{TAB}");
}
else
{
SendKeys.Send("{TAB}");
}
}
Explicação :
Para que possamos verificar qual tecla foi pressionada, usamos o parametro "e" que é passado no evento.
na propriedade e.KeyCode é retornada qual o codigo da tecla, que pode ser comparado com o enum "Keys".
e.Shift retorna um "bool" indicando se a tecla "Shift" esta pressionada, tambem podemos verificar se a tecla Control e Alt esta pressionada usando as propriedade e.Control e e.Alt respectivamente.
SendKeys, é uma classe que contem metodos para envio de teclas para a janela ativa no sistema operacional, usamos o metodo Send que recebe em uma string as teclas que serão enviadas.
Se usarmos SendKeys.Send("Devbr.net"), será enviado ao windows o texto que foi enviado por parametro, se estiver por exemplo um bloco de notas aberto, aparecerá escrito no bloco de notas "Devbr.net".
Quando pressionamos Shift + Tab, o windows envia o foco atual para o controle Anterior, entao para isso, tratamos no código se a tecla Shift esta pressionada, se estiver enviamos a tecla +{TAB} usando o comando SendKeys.Send("+{TAB}"), caso a tecla Shift não esteja pressionada, enviamos SendKeys.Send("{TAB}").
Qualquer dúvida, podem usar o campo de comentários para perguntarem.
Até a Próxima
| |
Thiago Silva Santos
Desenvolvedor
http://www.devbr.net
thiagorvgo
thiago.dev
thiagocpmg