How to add a line to a multiline TextBox?

后端 未结 10 623
情话喂你
情话喂你 2020-12-01 15:32

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\         


        
10条回答
  •  Happy的楠姐
    2020-12-01 16:13

    @Casperah pointed out that i'm thinking about it wrong. A TextBox doesn't have lines, it has text. That text can be split on the CRLF into lines, if requested - but there is no notion of lines.

    The question then is how to accomplish what i want, rather than what WinForms lets me.

    Other given variants have a subtle bug:

    • 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.

提交回复
热议问题