目前我的代碼:插入字符(vb.net)
textbox1.text = textbox1.text.insert(textbox1.getfirstcharIndexFromCurrentLine(),";")
但是,這意味着它必須重新加載整個文本框,這與大文件是明顯慢。
有什麼替代方案?
目前我的代碼:插入字符(vb.net)
textbox1.text = textbox1.text.insert(textbox1.getfirstcharIndexFromCurrentLine(),";")
但是,這意味着它必須重新加載整個文本框,這與大文件是明顯慢。
有什麼替代方案?
Dim currcaretpos = TextBox1.SelectionStart
Dim currsellength = TextBox1.SelectionLength
TextBox1.SelectionStart = TextBox1.GetFirstCharIndexOfCurrentLine
TextBox1.SelectionLength = 0
TextBox1.SelectedText = ";"
TextBox1.SelectionStart = currcaretpos + 1
TextBox1.SelectionLength = currsellength
您可以檢查是否粘貼文本更快:
textbox1.SelectionStart = textbox1.GetFirstCharIndexOfCurrentLine();
textbox1.SelectionLength = 0;
textbox1.Paste(";");
編輯:
由於文本框不是文本框後,而是一個RichTextBox,粘貼方法的工作方式不同。你可以把文本在剪貼板粘貼,或使用SelectedText屬性來代替:
textbox1.SelectedText = ";";
謝謝我會試試這個。 – 2010-02-09 12:51:01
謝謝你的回答,但是我認爲C#和vb.net之間存在一些差異,這意味着它完全無法工作 – 2010-02-10 20:42:53
@Jonathan:根本不應該有任何實際的差異。只需刪除行尾的分號,即VB代碼。 – Guffa 2010-02-10 21:05:21
串聯長字符串是痛苦的緩慢。使用richTextBox而不是TextBox會使用戶界面對於大字符串快得多,但對編程式文本更改沒有多大幫助。
這是一種可以加速文本框中大字符串變化的方式,但不幸的是這種方式很麻煩。
而是讀取文件中作爲一個單一的字符串,它讀成字符串數組:
ss = System.IO.File.ReadAllLines(filename)
只分配字符串三倍左右高度的文本框的文本框,連接你在第一步中讀取的行並添加一個crlf。
根據需要手動進行滾動,添加或刪除「textbox buffer」字符串。
反映用戶在文本框緩衝區和原始行(ss)中所做的更改。
這非常麻煩,但它會加快8 meg文件/字符串的文本框處理速度,例如,幾百倍。
將文本粘貼到未打開的文本框中。 – 2010-02-10 17:15:11
+1 - 用於在文本框中插入「時間戳」(設置爲多行)。 – JeffO 2010-02-12 02:14:14