Usuário com melhor resposta
\n não muda de linha numa textbox

Pergunta
-
Será possível ajudarem-me? Quando tento escrever numa textbox uma coisa tão simples como a seguinte displayTextBox.Text = "ESCREVEEMCIMA\nEXCREVEEMBAIXO"; usando o carater \n para mudar de linha verifica-se que o texto não muda de linha onde está colocado o \n. A propriedade MultiLine está ativa e já experimentei com o carater \r e tabém não funcionou, no entanto o tab, \t, funciona. Será possível ajudarem-me, já experimentei todas as outras propriedades e nenhuma corrigiu o problema.
Respostas
-
Paulo, As TextBox's tem uma propriedade chamada Lines, que é um array de strings. Para quebrar uma linha corretamente, você pode pegar o valor atual dessa propriedade, no momento que deseja fazer essa quebra, converter para um List, adicionar o valor ao final da List, e depois atribuir esse valor novamente a propriedade Lines da TextBox.
using System.Linq; private void Btn_BrakLine_Click(object sender, EventArgs e) { List<string> newLine = new List<string>(Tbx_Test.Lines); newLine.Add(""); Tbx_Test.Lines = newLine.ToArray(); }
No exemplo acima, nós usamos o método ToArray() para converter o List em array após adicionarmos uma outra linha, antes de atribuir esse valor novamente a propriedade Lines da TextBox.
O legal disso é que também podemos colocar a quebra de linha em qualquer ponto, usando o Insert:
private void Btn_BrakLine_Click(object sender, EventArgs e) { List<string> newLine = new List<string>(Tbx_Test.Lines); newLine.Insert(newLine.Count / 2, "TEST"); Tbx_Test.Lines = newLine.ToArray(); }
E não se esqueça de setar a propriedade MultiLine pra true.
Veja se isso te ajuda.
- Editado Cliffinho quinta-feira, 29 de junho de 2017 14:04
- Marcado como Resposta Filipe B CastroModerator sexta-feira, 30 de junho de 2017 19:24
Todas as Respostas
-
-
-
-
César, mesmo com as duas propriedades ativadas como disse, o problema mantém-se. Verifiquei que numa MessageBox tudo funciona bem mas numa label funciona a \n mas \t não funciona. Poderá ser instabilidade do Visual Studio 2015 Community e estar a precisar de ser reinstalado?
Obrigado
-
-
Paulo,
Tente \r\n ou Environment.NewLine.
Exemplo:
textBox1.Text = generatedCode.Replace("\n", "\r\n");
ou
textBox1.Text = generatedCode.Replace("\n", Environment.NewLine);
Referência:
https://stackoverflow.com/questions/1751371/how-to-use-n-in-a-textbox
Carlos Eduardo Ferreira
-
Paulo, As TextBox's tem uma propriedade chamada Lines, que é um array de strings. Para quebrar uma linha corretamente, você pode pegar o valor atual dessa propriedade, no momento que deseja fazer essa quebra, converter para um List, adicionar o valor ao final da List, e depois atribuir esse valor novamente a propriedade Lines da TextBox.
using System.Linq; private void Btn_BrakLine_Click(object sender, EventArgs e) { List<string> newLine = new List<string>(Tbx_Test.Lines); newLine.Add(""); Tbx_Test.Lines = newLine.ToArray(); }
No exemplo acima, nós usamos o método ToArray() para converter o List em array após adicionarmos uma outra linha, antes de atribuir esse valor novamente a propriedade Lines da TextBox.
O legal disso é que também podemos colocar a quebra de linha em qualquer ponto, usando o Insert:
private void Btn_BrakLine_Click(object sender, EventArgs e) { List<string> newLine = new List<string>(Tbx_Test.Lines); newLine.Insert(newLine.Count / 2, "TEST"); Tbx_Test.Lines = newLine.ToArray(); }
E não se esqueça de setar a propriedade MultiLine pra true.
Veja se isso te ajuda.
- Editado Cliffinho quinta-feira, 29 de junho de 2017 14:04
- Marcado como Resposta Filipe B CastroModerator sexta-feira, 30 de junho de 2017 19:24