如何在多行文本框中的新行上书写?

时间:2019-01-17 07:21:48

标签: c# .net winforms

我必须编写一个程序,您可以在其中输入最小值和最大值。然后从最小的所有数字。到最大甚至应该在多行文本框中显示。

但是,当偶数写入文本框中时,它始终会覆盖之前写入文本框中的数字。

我尝试了Enviroment.NewLine以及这个\ r \ n的东西,但是我可能用错了。

private void cmdstart_Click(object sender, EventArgs e)
{
    for (int i = Convert.ToInt32(textBox1.Text); i <= Convert.ToInt32(textBox2.Text); i++)
    {
        int a = i % 2;
        if (a == 0)
        {
            textBox3.Text = Convert.ToString(i);
        }
    }
}

最后,它应该输出最小的所有偶数。到最大在多行文本框中。每个数字都应换行。

3 个答案:

答案 0 :(得分:3)

发生这种情况是因为您每次都将其覆盖。

尝试以下代码:

textBox3.Text += i.ToString()+Environment.NewLine; 

答案 1 :(得分:0)

确保已在textBox3上将Multiline属性设置为true。

您可以在选择textbox3之后通过属性窗口对其进行设置,也可以在完成initializeComponents之后在表单构造函数的下面一行中进行编写。

textBox3.Multiline = true;

完成后,Environment.NewLine或 \ r \ n 都应该起作用。

答案 2 :(得分:0)

如果您编写多行文字,则可以自己进行测试

输入:

  

1

     

2

     

3

     

4

     

5

     

6

     

7

使用设计器和Text属性到文本框,您可以看到它生成了以下内容:

txt值:

  

“ 1 \ r \ n2 \ r \ n3 \ r \ n4 \ r \ n5 \ r \ n6 \ r \ n7”

代码:

string txt = multiLineTextBox.Text;

因此,如果您将\r\n添加到现有文本中,则会将文本追加到新行:

for (int i = Convert.ToInt32(textBox1.Text); i <= Convert.ToInt32(textBox2.Text); i++)
{
    int a = i % 2;
    if (a == 0)
    {
        textBox3.Text = $"{textBox3.Text}{i}\r\n";
        // or using string.Format for older versions
        //textBox3.Text = string.Format("{0}{1}\r\n", textBox3.Text, i);
    }
}