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

C# 如何在多行文本框中的新行上书写?,c#,.net,winforms,C#,.net,Winforms,我必须做一个程序,你可以输入一个最小值和一个最大值。然后,从最小值到最大值的所有偶数都应显示在多行文本框中 但当偶数写入文本框时,它总是覆盖以前写入文本框的数字 我试过Environment.NewLine和\r\n这个东西,但我可能用错了 private void cmdstart_Click(object sender, EventArgs e) { for (int i = Convert.ToInt32(textBox1.Text); i <= Convert.ToInt3

我必须做一个程序,你可以输入一个最小值和一个最大值。然后,从最小值到最大值的所有偶数都应显示在多行文本框中

但当偶数写入文本框时,它总是覆盖以前写入文本框的数字

我试过Environment.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);
        }
    }
}

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

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

您可以在选择textbox3后通过“属性”窗口进行设置,也可以在初始化Components后在表单构造函数中的行下方写入

textBox3.Multiline = true;

完成此操作后,Environment.NewLine或\r\n两者都应起作用。

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

您可以在选择textbox3后通过“属性”窗口进行设置,也可以在初始化Components后在表单构造函数中的行下方写入

textBox3.Multiline = true;

完成此操作后,Environment.NewLine或\r\n两者都应起作用。

之所以发生这种情况,是因为您每次都会覆盖它

请尝试以下代码:

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

它之所以发生,是因为您每次都覆盖它

请尝试以下代码:

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

如果你写多行文字,你可以自己测试

输入:

一,

二,

三,

四,

五,

六,

七,

对于使用designer和Text属性创建的文本框,您可以看到它生成如下内容:

txt值:

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

代码:

因此,如果在现有文本中添加\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);
    }
}

如果你写多行文字,你可以自己测试

输入:

一,

二,

三,

四,

五,

六,

七,

对于使用designer和Text属性创建的文本框,您可以看到它生成如下内容:

txt值:

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

代码:

因此,如果在现有文本中添加\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);
    }
}

这很有效,非常感谢!但是你能给我解释一下,这个代码到底发生了什么?例如,为什么还有a+=而不仅仅是a=?当您写入=下一个值时@ManuelSarica会删除上一个值。当您写入+=时,它会接受上一个值并将表达式的右部分附加到它,这相当于textbox3.Text=textbox3.Text+i.ToString+Environment.newline谢谢您的快速回答。为什么我必须使用i.ToString,它做什么?我还没有创建任何字符串,所以我还不太明白那里发生了什么。@ManuelSarica C中的所有对象都有ToString方法。Convert.ToString将int强制转换为IConvertible接口,然后调用ToString。看看源代码:->ToString和->ToString这两个工具,非常感谢!但是你能给我解释一下,这个代码到底发生了什么?例如,为什么还有a+=而不仅仅是a=?当您写入=下一个值时@ManuelSarica会删除上一个值。当您写入+=时,它会接受上一个值并将表达式的右部分附加到它,这相当于textbox3.Text=textbox3.Text+i.ToString+Environment.newline谢谢您的快速回答。为什么我必须使用i.ToString,它做什么?我还没有创建任何字符串,所以我还不太明白那里发生了什么。@ManuelSarica C中的所有对象都有ToString方法。Convert.ToString将int强制转换为IConvertible接口,然后调用ToString。看看源代码:->ToString和->ToString已经完成了,但是正如其他人指出的,我总是过度使用它。它们现在都起作用了,我只是用错了。我已经用过了,但正如其他人指出的,我总是过度使用它们。它们现在都能用了,我只是用错了。