在c#中设置多行TextBox的特定行

时间:2017-05-16 11:22:12

标签: c# winforms textbox multiline

您好我是C Sharp& S的新手Windows窗体。我无法设置多行TextBox的特定字符串。到目前为止,我已尝试过以下内容。

textBox1.Lines[1] = "welcome to stackOverflow";

上面的代码没有给出编译时错误,但是当我使用Debug模式看到结果时,它不是预期的。

然后我也在阅读这篇MSDN文章,但是在这里有一个使用stream[]构造函数创建的新集合,但仍然出现同样的问题。

2 个答案:

答案 0 :(得分:2)

它应该给编译器错误,因为您尝试在此处string分配char

textBox1.Text[1] = "welcome to stackOverflow";

Text属性的类型为string,当您在string上使用索引器时,它会在该位置为您提供char。而且string也是不可变的,所以你不能在不创建新字符串的情况下真正改变特定位置的字符。

您应该像这样直接设置Text

textBox1.Text = "welcome to stackOverflow";

或者,如果字符串数组中有多行,则应设置Lines属性:

var lines = new [] { "foo", "bar" };
textBox1.Lines = lines;

答案 1 :(得分:0)

您直接设置为textBox1.Lines的任何值都将生效为textBox1。

有一个解决方案可以解决您的问题。我认为这是最好的方式。 您必须克隆文本框的当前值。然后在其上设置新值。最后,你回到文本框。

var curValue = (string[])textBox1.Lines.Clone();
curValue[1] = "welcome to stackOverflow";

//Set back to textBox1
textBox1.Lines = curValue;