如何自动滚动到RichEdit的末尾?

时间:2011-06-16 12:55:35

标签: delphi scroll richedit autoscroll

我以前从不需要使用TRichEdit,总是使用TMemo。

当我添加像TMemo这样的文本时,我希望RichEdit自动滚动到最后。了解添加一些数据后的样子:

enter image description here

正如您所看到的,滚动条保持在顶部,但我希望它在我添加文本时保持在底部。

我已经谷歌搜索了解决方案,但我找不到一个好的和可靠的。

3 个答案:

答案 0 :(得分:15)

试试此代码

RichEdit1.SetFocus;
RichEdit1.SelStart := RichEdit1.GetTextLen;
RichEdit1.Perform(EM_SCROLLCARET, 0, 0);

答案 1 :(得分:2)

这是更简单,快速的解决方案:

仅在OnChange事件处理程序中:

SendMessage(RichEdit1.handle, WM_VSCROLL, SB_BOTTOM, 0);

原始答案来自:https://www.experts-exchange.com/questions/21002277/Richedit-autoscrolling.html

答案 2 :(得分:1)

简而言之,您需要将光标放在最后,或发送代码向下滚动。

你试过吗

Richedit1.SelStart :=RichEdit1.GetTextLength();
SendMessage(RichEdit1.handle, EM_SCROLLCARET,0,0);