您好我是C Sharp& S的新手Windows窗体。我无法设置多行TextBox的特定字符串。到目前为止,我已尝试过以下内容。
textBox1.Lines[1] = "welcome to stackOverflow";
上面的代码没有给出编译时错误,但是当我使用Debug模式看到结果时,它不是预期的。
然后我也在阅读这篇MSDN文章,但是在这里有一个使用stream[]
构造函数创建的新集合,但仍然出现同样的问题。
答案 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;