簡體   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