How can i add a line of text to a multi-line TextBox
?
e.g. pseudocode;
textBox1.Clear(); textBox1.Lines.Add("1000+"); textBox1.Lines.Add("750-999"); textBox1.Lines.Add("400-749"); ...snip... textBox1.Lines.Add("40-59");
or
textBox1.Lines.Append("brown"); textBox1.Lines.Append("brwn"); textBox1.Lines.Append("brn"); textBox1.Lines.Append("brow"); textBox1.Lines.Append("br"); textBox1.Lines.Append("brw"); textBox1.Lines.Append("brwm"); textBox1.Lines.Append("bron"); textBox1.Lines.Append("bwn"); textBox1.Lines.Append("brnw"); textBox1.Lines.Append("bren"); textBox1.Lines.Append("broe"); textBox1.Lines.Append("bewn");
The only methods that TextBox.Lines implements (that i can see) are:
Click the Display tab. To enable multiple lines of text to be typed in the text box, select the Multi-line check box, and then optionally do one of the following: To prevent users from being able to insert paragraph breaks in the text box by pressing ENTER, clear the Paragraph breaks check box.
Multiline TextBox By default, a TextBox control accepts input in a single line only. To make it multi-line, you need to set Multiline property to true. By default, the Multiline property is false. When you drag and drop a TextBox control from Toolbox to a Form, you cannot change the height of a TextBox control.
Microsoft Excel in Windows On all versions of Microsoft Excel for the PC and Windows, the keyboard shortcut Alt + Enter moves to the next line. To use this keyboard shortcut, type text in the cell and when ready for a new line, press and hold down the Alt key, then press the Enter key.
@Casperah pointed out that i'm thinking about it wrong:
TextBox
doesn't have linesThe question then is how to accomplish what i want, rather than what WinForms lets me.
There are subtle bugs in the other given variants:
textBox1.AppendText("Hello" + Environment.NewLine);
textBox1.AppendText("Hello" + "\r\n");
textBox1.Text += "Hello\r\n"
textbox1.Text += System.Environment.NewLine + "brown";
They either append or prepend a newline when one (might) not be required.
So, extension helper:
public static class WinFormsExtensions { public static void AppendLine(this TextBox source, string value) { if (source.Text.Length==0) source.Text = value; else source.AppendText("\r\n"+value); } }
So now:
textBox1.Clear(); textBox1.AppendLine("red"); textBox1.AppendLine("green"); textBox1.AppendLine("blue");
and
textBox1.AppendLine(String.Format("Processing file {0}", filename));
Note: Any code is released into the public domain. No attribution required.
I would go with the System.Environment.NewLine
or a StringBuilder
Then you could add lines with a string builder like this:
StringBuilder sb = new StringBuilder(); sb.AppendLine("brown"); sb.AppendLine("brwn"); textbox1.Text += sb.ToString();
or NewLine like this:
textbox1.Text += System.Environment.NewLine + "brown";
Better:
StringBuilder sb = new StringBuilder(textbox1.Text); sb.AppendLine("brown"); sb.AppendLine("brwn"); textbox1.Text = sb.ToString();
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With