繁体   English   中英

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

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM