none
[Duvida] Tecla Enter como TAB ??

    Question

  •  

    E ae galera

    estou eu aqui de novo tentando fazer coisas que não sei

    ehehehe

     

    Eu gostaria de fazer o seguinte::::

    Quando o cara estiver em um campo e pressionar Enter ele passa para o próximo campo.

     

    Tipo..

    tentei fazer o seguinte:

     

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

    If e.KeyCode = Keys.Enter Then

    SendKeys.Send(Keys.Tab)

    End If

    End Sub

     

    Tipo.. não funcionou

    ehehe

    ele mostra o numero 9 no campo

     

    tipo.. não existe alguma coisa como.. nextFocus() ?? sender.nextFocus()??

     

    eu tentei fazer: sender.lostFocus().. legal.. ele tb não funciona..

    eu gostaria que, assim que o usuário apertar o Enter, ele funcione como o tab e passe para o próximo tabIndex

     

    tendeu??

    Alguma luz??

    ehehe

    valeu.

    =)
    Tuesday, January 08, 2008 8:07 PM

Answers

  • Ludson, eu utilizo isso nos meus projetos e funciona bem ...

     

    Primeiro vc altera a propriedade do form KeyPreview para True

     

    Cria um evento no form:

     

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

       Select Case e.KeyCode

          Case Keys.Enter

             SendKeys.Send("{Tab}")

       End Select

    End Sub

     

     

    Voce deve utilizar Imports System.Windows.Forms ou implementar na linha marcada de amarelo.

     

    Espero ter ajudado !!!

    Tuesday, January 08, 2008 9:42 PM
  • ludson tenta fazer da seguinte forma.

    orderne os index dos objetos e use assim

     

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

             If e.KeyCode = Keys.Enter Then

    SendKeys.Send("{TAB}")

    End If

    End Sub

     

    Assim deve funcionar !!

     

    Tuesday, January 08, 2008 8:44 PM
  • Resolvido

    ehehehe

    achei em um site

     

    Apenas para registro.. pra enviar o Shift + Tab.. é só colocar um + antes do {Tab}

     

    Ou seja:

    SendKeys.Send("+{TAB}")

     

    Caso deseje enviar o Ctrl + Tab é só colocar:

    SendKeys.Send("^{TAB}")

     

    e por fim.. Alt + Tab:

    SendKeys.Send("%{TAB}")

     

    Valeu!!

    Wednesday, January 09, 2008 11:20 AM

All replies

  • ludson tenta fazer da seguinte forma.

    orderne os index dos objetos e use assim

     

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

             If e.KeyCode = Keys.Enter Then

    SendKeys.Send("{TAB}")

    End If

    End Sub

     

    Assim deve funcionar !!

     

    Tuesday, January 08, 2008 8:44 PM
  • Ludson, eu utilizo isso nos meus projetos e funciona bem ...

     

    Primeiro vc altera a propriedade do form KeyPreview para True

     

    Cria um evento no form:

     

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

       Select Case e.KeyCode

          Case Keys.Enter

             SendKeys.Send("{Tab}")

       End Select

    End Sub

     

     

    Voce deve utilizar Imports System.Windows.Forms ou implementar na linha marcada de amarelo.

     

    Espero ter ajudado !!!

    Tuesday, January 08, 2008 9:42 PM
  •  

    Robson e Davi.

    muito obrigado, deu certo

    pelo que percebi estava no caminho certo

    ehehe

    só tinha errado na forma de enviar o TAB.

     

    Davi, não foi preciso importar nada, nem passar pra true no KeyPreview do form..

    como eu ja tinha criado o método KeyEnter para tentar fazer, apenas mudei a forma de enviar o tab no SendKeys..

    Antes estava tentando enviar como: SendKeys.Send(Keys.Tab) e não estava funcionando.

    mas agora funcionou.

     

    Muito Obrigado

    Até A proxima

    Wednesday, January 09, 2008 10:39 AM
  •  

    Aproveitando o topico.. pra não precisar abrir outro..

    tipo

     

    e pra voltar?

    geralmente ao apertar Shift + TAB ele volta para o TaIndex anterior.

    Como envio com o Send Keys mais de uma tecla? mais precisamente o Shift e o tab juntos

    valeu

    Wednesday, January 09, 2008 11:16 AM
  • Resolvido

    ehehehe

    achei em um site

     

    Apenas para registro.. pra enviar o Shift + Tab.. é só colocar um + antes do {Tab}

     

    Ou seja:

    SendKeys.Send("+{TAB}")

     

    Caso deseje enviar o Ctrl + Tab é só colocar:

    SendKeys.Send("^{TAB}")

     

    e por fim.. Alt + Tab:

    SendKeys.Send("%{TAB}")

     

    Valeu!!

    Wednesday, January 09, 2008 11:20 AM
  • Olá. = )

     

    Estou tendo alguns problemas para implementar os códigos citados acima.

     

    Apesar de estar bastante claro o tópico, ainda não compreendi como - e onde - coloco os códigos necessários para utilizar o TAB como Enter.

     

    Alguém poderia me explicar PASSO a  PASSO como fazer para utilizá-lo corretamente?

     

     

    Valew. = ]

    Friday, January 11, 2008 12:43 PM
  • Caro Lelis

     

    Você pode utilizar isso de varias maneiras vou ilustrar um para que possa entender.

     

    Suponha que você tenha um form criado e dentro desse form você tenha dois textbox, você deseja que quando o textbox1 estiver com o foco e o usuario apertar a tecla enter ele passe  para o proximo objeto no caso o textbox2.

     

    No codigo acima usamos a propriedade Keydown do Form por que ? Nós queremos que independente de onde esteja o focu no form quando precionarmos a tecla enter ele mude de focu para o proximo objeto.

    Por isso o codigo acima.

     

    Você deve colocar o codigo o bloco de intruçoes dentro de um metodo KeyDown do objeto no caso (quase todo Objeto possuui esse metodo...Form,Textbox,Combobox etc..)

    If e.keycode=keys.enter then

    sendkeys.send("Tab")

    end if

     

    Espero ter ajudado!!

     

    Ps. se for a resposta que precisa por favor marque como resposta!

     

    Friday, January 11, 2008 3:50 PM
  • Ola..
    estou tentando fazer o Enter assumir a funcao do TAB em um DataGrid. Coloquei o codigo no evento KeyDown, so que o resultado foi que ele se desloca para uma linha abaixo e uma coluna quando se pressiona o Enter, sendo que o que desejo é que a celula mova uma coluna somente e permaneca na mesma linha. Alguem tem alguma sugestao??

    If e.KeyCode = Keys.Enter Then
                SendKeys.Send("{Tab}")
      End If


    Obrigado
    Monday, January 14, 2008 5:10 PM
  • Robson, infelizmente ainda não consegui fazer o que desejo.

    Quando eu insiro o código que você postou, o foco de um campo muda para o outro, mas de uma forma completamente aleatória.
    Do primeiro campo, ele pula para um quarto, desse quarto, para um sétimo , e assim por diante.

    Não era pra ocorrer isso, estou certo? O que posso estar fazendo de errado?!

    Aguardo resposta o quanto antes.

    Thursday, January 17, 2008 8:55 PM
  • Lélis,

     

    Veja a propriedade TabIndex dos seus objetos. Ela define a ordem de tabulação.

     

    Atenciosamente,

     

     

    Friday, January 18, 2008 10:35 AM
  • Pow galera..gostaria de agradecer todo mundo que tento ajudar..!

    Enfim consegui o que eu queria..! Só precisei definir a Ordem de Tabulação..! = ]

    Valew Terence..! E valew..toda a galera que tentou ajudar...!
    Tuesday, January 22, 2008 11:15 PM
  • Entendi bem!

     

    O meu problema é o seguinte, um textbox dentro de XAML dispara um evento do tipo System.Windows.Input.KeyEventArgs..

     

    Se algem poderm me ajudar, eu to com a seguinte situação.

     

    Preciso passar um Shift + Tab e voltar para o tabindex anterior.

    Meus tabindex estão definidos, só que o tratamento do evento lançado pelo KeyPress do textbox não está conseguindo tratar a junção das teclas modificadoras, como no exemplo abaixo:

     

    private void txtPlace_KeyDown(object sender, System.Windows.Input.KeyEventArgs e)
            {
                if (e.Key == Key.Enter)
                {
                    this.EfetuaLogonMultimidia();
                    e.Handled = true;
                }
                else if (e.Key == Key.Tab)
                {
                    this.cmdLoginLogout.Focus();
                    e.Handled = true;
                }
                else if ((e.KeyboardDevice.Modifiers == ModifierKeys.Shift) && (e.Key == Key.Tab))
                {
                    this.txtNomeDoUsuario.Focus();
                    e.Handled = true;
                }
            }

     

    o trecho de código em Vermelho não alcançado nunca!

     

    Alguem tem alguma ideia.

     

    PS: eu iniciei uma nova thread no msdn forums- --> http://forums.msdn.microsoft.com/en-US/wpf/thread/95537dcb-57c9-48f0-95e4-a7c01212fd33

     

    []´s Breno.

    Thursday, July 31, 2008 4:08 PM