[英]Set specific line of multiline TextBox in c#
您好,我是 C Sharp 和 Windows 窗体的新手。 我无法设置多行文本框的特定字符串。 到目前为止,我已经尝试过以下事情。
textBox1.Lines[1] = "welcome to stackOverflow";
上面的代码没有给出编译时错误,但是当我使用调试模式看到结果时,这是意料之中的。
然后我也在阅读这篇MSDN文章,但在这篇文章中有一个使用stream[]
构造函数创建的新集合,但仍然出现同样的问题。
它应该给编译器错误,因为您试图在此处为char
分配一个string
:
textBox1.Text[1] = "welcome to stackOverflow";
Text
属性的类型是string
,当您在string
上使用索引器时,它会为您提供该位置的char
。 而且字符串是不可变的,因此您无法在不创建新字符串的情况下真正更改特定位置的字符。
您应该像这样直接设置Text
:
textBox1.Text = "welcome to stackOverflow";
或者,如果字符串数组中有不止一行,则应设置 Lines 属性:
var lines = new [] { "foo", "bar" };
textBox1.Lines = lines;
您直接设置到 textBox1.Lines 的任何值都将影响到 textBox1。
有一个解决方案可以解决您的问题。 我认为这是最好的方法。 您必须克隆文本框的当前值。 然后在其上设置新值。 最后,您返回到文本框。
var curValue = (string[])textBox1.Lines.Clone();
curValue[1] = "welcome to stackOverflow";
//Set back to textBox1
textBox1.Lines = curValue;
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.