目前我有代码:
textbox1.text = textbox1.text.insert(textbox1.getfirstcharIndexFromCurrentLine(),";")
但这意味着它必须重新加载整个文本框,大文件显然很慢。
有哪些替代方案?
答案 0 :(得分:2)
您可以检查粘贴文本是否更快:
textbox1.SelectionStart = textbox1.GetFirstCharIndexOfCurrentLine();
textbox1.SelectionLength = 0;
textbox1.Paste(";");
编辑:
由于文本框毕竟不是文本框,而是richtextbox,因此Paste方法的工作方式不同。您可以将文本放在剪贴板中并粘贴它,或者改为使用SelectedText属性:
textbox1.SelectedText = ";";
答案 1 :(得分:2)
Dim currcaretpos = TextBox1.SelectionStart
Dim currsellength = TextBox1.SelectionLength
TextBox1.SelectionStart = TextBox1.GetFirstCharIndexOfCurrentLine
TextBox1.SelectionLength = 0
TextBox1.SelectedText = ";"
TextBox1.SelectionStart = currcaretpos + 1
TextBox1.SelectionLength = currsellength
答案 2 :(得分:0)
连接长字符串非常慢。使用richTextBox而不是TextBox将使大型字符串的用户界面更快,但这对程序化文本更改没有多大帮助。
这是一种可以加快文本框中更改大字符串的方法,但不幸的是它很麻烦。
不是将文件作为单个字符串读取,而是将其作为字符串数组读入:
ss = System.IO.File.ReadAllLines(filename)
只将文本框高度的三倍的字符串分配给文本框,连接在第一步中读取的行并添加一个文件。
根据需要手动滚动,添加或删除“textbox buffer”字符串。
反映用户在文本框缓冲区和原始行(ss)中所做的更改。
这非常麻烦,但它会加速8兆字节文件/字符串的文本框处理,例如,几百倍。