【问题标题】:How can I write on a new Line in a MultiLine Textbox?如何在多行文本框中的新行上书写?
【发布时间】:2019-01-17 15:41:35
【问题描述】:

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

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

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

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

【问题讨论】:

    标签: c# .net winforms


    【解决方案1】:

    这是因为你每次都覆盖它。

    试试下面的代码:

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

    【讨论】:

    • 这行得通,非常感谢!但是你能向我解释一下,这段代码到底发生了什么?例如,为什么有 += 而不再只有 =?
    • @ManuelSarica 当你写 = 时,下一个值会擦除前一个值。
    • 当你写+=时,它会取前一个值并将表达式的右侧部分附加到它上面,它相当于textbox3.Text=textbox3.Text+i.ToString()+Environment.NewLine跨度>
    • 感谢您的快速解答。为什么我必须使用 i.ToString(),它有什么作用?我还没有创建任何字符串,所以我不太明白那里发生了什么。
    • @ManuelSarica C# 中的所有对象都有 ToString 方法。 Convert.ToString 将 int 转换为 IConvertible 接口,然后调用 ToString。看源码:github.com/Microsoft/referencesource/blob/master/mscorlib/… -> ToString 和github.com/Microsoft/referencesource/blob/master/mscorlib/… -> ToString
    【解决方案2】:

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

    您可以在选择 textbox3 后通过属性窗口进行设置,也可以在初始化组件完成后在表单构造函数中写下一行。

    textBox3.Multiline = true;
    

    完成此操作后,Environment.NewLine 或 \r\n 都应该可以工作。

    【讨论】:

    • 我已经这样做了,但正如其他人指出的那样,我总是过度强调它。它们现在都可以工作,只是我用错了。
    【解决方案3】:

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

    输入:

    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);
        }
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-17
      • 1970-01-01
      • 2019-11-12
      • 2013-10-10
      • 2012-10-09
      • 2013-05-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多