PULAR LINHA EM UM TEXTBOX

ELMO01 25/01/2012 10:56:45
#393933
Bom dia a todos.

Em meu programa tenho um texbox multine, só que quando pressiono o ENTER para mudar de linha, o programa vai para o botão de confirmação de dados. O que eu quero é que o programa mude linha e não vai para o botão de confirmação de dados, como faço para que mude automaticamente para uma próxima linha a ser digitada???

Obrigado,
HELDER 26/01/2012 09:27:02
#393950
Bom dia

Não estás a usar o keyPreview?
ELMO01 26/01/2012 09:40:23
#393951
Bom dia HELDER, sim estou, já tenteni de tudo para retirar o KeyPress, só q não está dando certo, vejo como estou fazendo:


Private Sub Txt_ObsEmp_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_ObsEmp.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Enter) Then
e.Handled = True
Me.KeyPreview = False
SendKeys.Send([Ô]{TAB}[Ô])
Me.Txt_ObsEmp.TabIndex = 0
Me.Txt_ObsEmp.Focus()
End If
End Sub

Mesmo assim não está dando certo. Não sei o que estou fazendo de errado mas tó.

Você tem outra sugestão?

Obrigado,
JABA 26/01/2012 17:01:41
#393957
e.SuppressKeyPress = True cancela o enter dentro do texto.

no evento abaixo, seleciono a Textbox4 e pressiono Enter, ele passa o focu para o Text1 sem quebrar o texto da TextBox4.

Private Sub TextBox4_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) Handles TextBox4.KeyDown

If e.KeyCode = Keys.Enter Then
e.SuppressKeyPress = True
TextBox1.Focus()
End If

End Sub
PROGRAMADORVB6 26/01/2012 19:50:27
#393958
Olá ELMO01
Tente este exemplo :

Private Sub Txt_ObsEmp_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles Txt_ObsEmp.KeyPress
If e.KeyChar = Convert.ToChar(Keys.Enter) Then
e.Handled = True
Txt_ObsEmp.SelectionStart = Txt_ObsEmp.TextLength
Txt_ObsEmp.ScrollToCaret()
Txt_ObsEmp.AppendText(Environment.NewLine)
End If
End Sub


Até+
Programadorvb6
ELMO01 26/01/2012 21:11:01
#393959
é rapazes ambos exemplos não deram certo, abri até um arquivo novo para testar as soluções q vocês me passaram mas continua dando errado, o erro se dá quando teclo o enter, ao envés de continuar no textbox, o foco passa para o botão de confirmação da digitação. Para demonstrar o q estou falando, anexei um arquivo que contém as mesmas configurações do meu. Por favor dê uma olhada e me falem o que estou fazendo de errado.

Obrigado
JABA 27/01/2012 11:12:21
#393966
ELMO, se o que voce quer é apenas passar para a proxima linha da caixa de texto apertando Enter, deixe a propriedade do Form KeyPreview = true apenas. O restante do codigo voce pode tirar. O focu passa para o botao porque voce esta usando o SendKeys.Send([Ô]{TAB}[Ô]). Retire todos os eventos referente a caixa de texto e deixe apenas o KeyPreview do Form = True e depois digite um texto e dê enter na caixa de texto que ele vai passar para a proxima linha.

vlw
PROGRAMADORVB6 27/01/2012 11:42:44
#393969
Resposta escolhida
 Imports System.Text

Public Class Form1
Private Sub TextBox1_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles TextBox1.KeyPress
TextBox1.AcceptsReturn = True
If e.KeyChar = Convert.ToChar(Keys.Escape) Then
Me.Button2.Focus()
End If
End Sub

Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
End
End Sub
End Class


Cara Esqueça o SendKeys.Send([Ô]{tab}[Ô])
Exprimente : Troque o que tem por este código
ELMO01 31/01/2012 11:21:56
#394011
Bom dia a todos,

Gostaria de agradeçer a todos pelas sugestões dada neste tópico, mas arrumei um método simples de fazer isto.Veja abaixo:

Private Sub TabControl1_Click(sender As Object, e As System.EventArgs) Handles TabControl1.Click
If TabPage1.Focus Then
Me.KeyPreview = True
Me.Txt_NomCli.Focus()
Else
Me.KeyPreview = False
Me.Txt_ObsEmp.Focus()
End If
End Sub

Assim deu certo.

Obrigado.
Tópico encerrado , respostas não são mais permitidas