Usuário com melhor resposta
Quebrar linha textbox keydown

Pergunta
-
Pessoal, não achei nada na internet como exemplo para quebrar linha em um textbox multline com um evento como o KeyDown para quando apertar por exemplo F12 cair para linha de baixo do texto, da forma abaixo ele retorna para o inicio da linha escrita ao invés de cair para linha de baixo:
private void TxtObservacao_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.F12) { TxtObservacao.Text += Environment.NewLine; } }
- Editado Guilherme Walter sábado, 20 de fevereiro de 2016 01:22 troca titulo
Respostas
-
Tenta isso aqui, espero que de certo
if (e.KeyCode == Keys.F12)
{
textBox1.Text += Environment.NewLine ;
textBox1.Select(textBox1.Text.Length, 0);
}Junior
- Marcado como Resposta Guilherme Walter domingo, 21 de fevereiro de 2016 21:08
-
Junior, você sabe como pode ser feito para usar 2 teclas ao invés de apenas F12 por exemplo para quebrar a linha apertar CTRL+F12?
RESOLVIDO, SEGUE O CODIGO PARA QUEM PRECISAR:
if (e.KeyCode == Keys.Down) { if (e.Shift)//Shift + TECLA PARA BAIXO { TxtObservacao.Text += Environment.NewLine; TxtObservacao.Select(TxtObservacao.Text.Length, 0); } }
- Marcado como Resposta Guilherme Walter segunda-feira, 22 de fevereiro de 2016 01:53
Todas as Respostas
-
-
-
-
Entendi ... hummm dai danou-se rsssss
Bom pode tentar usar uma POG rssssCria uma variavel public ao Form char cEnter = 'S'
E no seu evento keydown faz assim
if (e.KeyCode == Keys.F12)
{
cEnter = 'N';
SendKeys.Send("{ENTER}");
if(cEnter == 'S')
{
// aqui vc coloca seu codigo para usar o TAB com ENTER
cEnter = 'S';}
}
Uma POG mas pode te ajudar
Junior
-
-
O cEnter é uma variavel do tipo char eu que acabei escrevendo de uma forma confusa pois coloquei o tipo na variavel na linha de cima, mas seria assim
char cEnter = 'S'; ou voacê também pode ter uma variavel boolean para isso vc pode mudar o valor dessa variavel dentro do load do seu form seria uma forma de contornar o diparo da rotina que troca o TAB pelo ENTER
Junior
-
Prezado Guilherme Walter,
Boa tarde!
a. O evento KeyDown somente para iniciar nova linha?
b. A aplicação é em Windows Forms?
Se sim, tente aplicar o exemplo abaixo:
private void textBox1_KeyDown(object sender, KeyEventArgs e)
{
if (e.KeyCode == Keys.F12)
{
try
{
textBox1.Text = textBox1.Text += "\n";
textBox1.Select(textBox1.Text.Length, 100000);
}
catch (Exception)
{
MessageBox.Show("Não foi possível realizar o evento da tecla F12.");
}
}
}Obs.: pode ser necessário realizar alguns ajustes.
No que puder ajudar, à disposição,
Atenciosamente,
Rafael Assaad
-
-
Guilherme fiz testes em uma aplicação e funciona corretamente com o codigo SENDKEYS, o grande problema é que você tem um codigo que faz essa alteração de teclas ENTER para TAB no seu form, o que me ocorreu aqui foi o seguinte, eu testei e deu certo veja se te ajuda
if (e.KeyCode == Keys.F12)
{
SendKeys.Send("{ENTER}");
textBox1.Focus();
}A cada F12 ele muda de linha ou seja dispara um ENTER dentro do objeto e da o foco no mesmo objeto
Junior
- Marcado como Resposta Guilherme Walter domingo, 21 de fevereiro de 2016 13:03
- Não Marcado como Resposta Guilherme Walter domingo, 21 de fevereiro de 2016 13:04
-
-
Tenta isso aqui, espero que de certo
if (e.KeyCode == Keys.F12)
{
textBox1.Text += Environment.NewLine ;
textBox1.Select(textBox1.Text.Length, 0);
}Junior
- Marcado como Resposta Guilherme Walter domingo, 21 de fevereiro de 2016 21:08
-
-
-
Junior, você sabe como pode ser feito para usar 2 teclas ao invés de apenas F12 por exemplo para quebrar a linha apertar CTRL+F12?
RESOLVIDO, SEGUE O CODIGO PARA QUEM PRECISAR:
if (e.KeyCode == Keys.Down) { if (e.Shift)//Shift + TECLA PARA BAIXO { TxtObservacao.Text += Environment.NewLine; TxtObservacao.Select(TxtObservacao.Text.Length, 0); } }
- Marcado como Resposta Guilherme Walter segunda-feira, 22 de fevereiro de 2016 01:53