代码之家  ›  专栏  ›  技术社区  ›  Alex Angas Colin

使用自动跟随光标登录到文本框

  •  1
  • Alex Angas Colin  · 技术社区  · 16 年前

    我正在使用WinForms文本框控件进行日志记录。它被设置为带有滚动条的多行。我正在使用插入文本:

    textBox.Text += logMessage;
    

    滚动条不会自动跟随最新的日志条目。有办法吗?

    2 回复  |  直到 16 年前
        1
  •  1
  •   icktoofay pcp    16 年前

    设置 TextBox SelectionStart property 到文本的长度,然后调用 ScrollToCaret .

        2
  •  1
  •   Tim Coker    15 年前

    我参加聚会迟到了,但像这样登录时要小心的是文本字段的长度。你想经常修剪它的头部(但不要太频繁…)。我使用的策略是使用一个最大字符限制,比如5000,当文本达到限制的两倍时,将其减少到限制。

    string LimitText(string Text)
    {
        int textLimit = 5000;
        //let the field grow to double the limit, then chop it in half
        if (Text.Length > textLimit * 2)
        {
            Text = Text.Substring(Text.Length - textLimit, textLimit);
        }
        return Text;
    }
    

    双重限制的存在是为了减少子串操作的发生。另外,这实际上只是一个问题,如果你在一个长时间运行的程序中使用它,不断添加到文本字段(是的,我还登录到一个文本文件,通常用于调试。这是更多的快速诊断…)

    推荐文章