我有一個很長的字符串,但是當我嘗試將其分配給RichTextBox的,它需要很長的時間,例如:把字符串RichTextBox的
string s = "very long string";
RichTextBox obj = new RichTextBox();
obj.Text = s;
是否有另一種方式把字符串更快的方式?
我有一個很長的字符串,但是當我嘗試將其分配給RichTextBox的,它需要很長的時間,例如:把字符串RichTextBox的
string s = "very long string";
RichTextBox obj = new RichTextBox();
obj.Text = s;
是否有另一種方式把字符串更快的方式?
當然不是你在找什麼,而是在飛行中的猜測。如果您擔心在將長文本(字符串)分配給richtextbox時表單掛起,並且您無法操作任何內容,則可以嘗試在線程中分配文本,而不是繼續使用主表單。示例代碼如下。
private void SetTextButton_Click(object sender, EventArgs e)
{
string longText = "Very Long Text";
Thread t = new Thread(() => AssignLongText(longText));
t.Start();
}
private void AssignLongText(longText)
{
Invoke(new Action(() => richTextBox1.AppendText(text)));
}
如果我的啤酒超過了在國內肯定會嘗試看看這個帖子再次:)
希望它能幫助。
你可能會遇到交叉線程這個答案的錯誤。您需要爲分配長文本例程創建一個委託,然後檢查文本框的invokerequired屬性,以確保在執行文本插入時位於GUI線程中。 –
只是忽略了十字線的事.......我的愚蠢。我已更新答案以解決您的評論 – Sandy
表單上是否包含豐富的文本框?你也可以使用文本框;只需啓用多行屬性,然後將文本從變量中設置爲文本框即可。我剛剛在1秒內發送了5000個字符到一個字段,需要多長時間? – Codexer
爲什麼不是RichTextBox1.Text = s; ? – sajanyamaha
字符串s是多久? – platon