在当前行的开头插入字符(vb.net)

时间:2010-02-09 07:50:51

标签: .net vb.net textbox insert

目前我有代码:

textbox1.text = textbox1.text.insert(textbox1.getfirstcharIndexFromCurrentLine(),";")

但这意味着它必须重新加载整个文本框,大文件显然很慢。

有哪些替代方案?

3 个答案:

答案 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将使大型字符串的用户界面更快,但这对程序化文本更改没有多大帮助。

这是一种可以加快文本框中更改大字符串的方法,但不幸的是它很麻烦。

  1. 不是将文件作为单个字符串读取,而是将其作为字符串数组读入:

    ss = System.IO.File.ReadAllLines(filename)
    
  2. 只将文本框高度的三倍的字符串分配给文本框,连接在第一步中读取的行并添加一个文件。

  3. 根据需要手动滚动,添加或删除“textbox buffer”字符串。

  4. 反映用户在文本框缓冲区和原始行(ss)中所做的更改。

  5. 这非常麻烦,但它会加速8兆字节文件/字符串的文本框处理,例如,几百倍。