PULAR TEXTBOX COM AS SETAS DO TECLADO

JANDSONSISTENS 22/10/2016 19:07:11
#468308
Boa noite galera, estou precisando pular de um textbox para [txt-color=#e80000] FRENTE [/txt-color] ou [txt-color=#e80000] TRAZ [/txt-color] eu tenho 10 textbox em sequencia.
e preciso usar o eventos do teclado das SETAS para Frente [txt-color=#007100] Pular para o proximo textbox [/txt-color] e para TRAZ [txt-color=#e80000] volta para o textbox anterior [/txt-color]

estou usando esse codigo do Marcoratti. ele vai certinho porem.. tem q precionar 2 vezes se eu precionar 2 vezes ele faz certinho.. ai eu queria precionando apenas Uma vez.

vejam galera.

    Private Sub MoverFoco(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)

If e.KeyCode = Keys.Left Then
If Not Me.GetNextControl(sender, False) Is Nothing Then Me.GetNextControl(sender, False).Focus()
ElseIf e.KeyCode = Keys.Right Or e.KeyCode = Keys.Enter Then
If Not Me.GetNextControl(sender, True) Is Nothing Then Me.GetNextControl(sender, True).Focus()
End If
End Sub


e nos textbox no evento KeyDown eu chamo a função.
  MoverFoco(sender, e) 


alguem poderia da uma ideia para melhorar essa função.. precionando apenas uma vez a seta.
NICKOSOFT 22/10/2016 19:12:57
#468309
  
Private Sub frmAgenda_KeyPress(sender As Object, e As KeyPressEventArgs) Handles MyBase.KeyPress
If e.KeyChar = Convert.ToChar(13) Then
e.Handled = True
SendKeys.Send([Ô]{TAB}[Ô])
End If
End Sub

o keypreview do form tem q estar ativado, no caso ai o enter faz o avanço, ai vc adapta...
JANDSONSISTENS 22/10/2016 19:29:26
#468310
Citação:

:

  
Private Sub frmAgenda_KeyPress(sender As Object, e As KeyPressEventArgs) Handles MyBase.KeyPress
If e.KeyChar = Convert.ToChar(13) Then
e.Handled = True
SendKeys.Send([Ô]{TAB}[Ô])
End If
End Sub

o keypreview do form tem q estar ativado, no caso ai o enter faz o avanço, ai vc adapta...



Opa Nickosoft, essa função do Enter eu ja tenho

Eu queria fazer o mesmo com as setas do teclado... pra <- ->
pular para frente ao preciona-lo ->
voltar para Traz so Preciona-lo <-

JABA 22/10/2016 20:38:16
#468312
Resposta escolhida
Você está fazendo a chamada no lugar errado. Faça a chamada do método MoverFoco() somente para o evento KeyDown do Form. Ou seja, não precisa fazer essa chamada dentro do evento de cada textbox. E outra coisa importante: Não se esqueça de habilitar o KeyPreview do form para True, senão não vai funcionar como o esperado.

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
MoverFoco(sender, e)
Sub
JANDSONSISTENS 23/10/2016 09:32:38
#468316
Citação:

:
Você está fazendo a chamada no lugar errado. Faça a chamada do método MoverFoco() somente para o evento KeyDown do Form. Ou seja, não precisa fazer essa chamada dentro do evento de cada textbox. E outra coisa importante: Não se esqueça de habilitar o KeyPreview do form para True, senão não vai funcionar como o esperado.

Private Sub Form1_KeyDown(sender As Object, e As KeyEventArgs) Handles MyBase.KeyDown
MoverFoco(sender, e)
Sub



Vlw Jaba deu certo :)
Tópico encerrado , respostas não são mais permitidas