You are here

Enter funcionado com TAB em C# - [Dica]

Tweet me!

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 SantosDesenvolvedorhttp://www.devbr.net
 
Google Talk: thiagorvgo Skype: thiago.dev MSN: thiagocpmg
Ultima postagem em DevBr.Net Converta Sites para PDF Facilmente

 

 

 

 

 

Comentários
Adicionar novo Busca RSS
Geraldo Torres   |200.242.47.xxx |2010-03-26 11:53:21
Prezado Thiago,

Essa foi a melhor solução que encontrei na rede, funcionou
100%, muito obrigado.
Escrever um comentário
Nome:
E-mail:
 
Título:
UBBCode:
[b] [i] [u] [url] [quote] [code] [img] 
 
 
:angry::0
:confused::cheer:
B):evil:
:silly::dry:
:lol::kiss:
:D:pinch:
:(:shock:
:X:side:
:):P
:unsure::woohoo:
:huh::whistle:
;):s
:!::?:
:idea::arrow:
 
Por favor coloque o código anti-spam que você lê na imagem.

3.26 Copyright (C) 2008 Compojoom.com / Copyright (C) 2007 Alain Georgette / Copyright (C) 2006 Frantisek Hliva. All rights reserved."