9

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

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

在此处输入图像描述

如您所见,滚动条仍位于顶部,但我希望它在添加文本时位于底部。

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

4

3 回答 3

18

试试这个代码

RichEdit1.SetFocus;
RichEdit1.SelStart := RichEdit1.GetTextLen;
RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
于 2011-06-16T13:09:49.747 回答
10

这是更容易和快速的解决方案:

在 OnChange 事件处理程序中:

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

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

于 2018-08-13T11:31:19.900 回答
1

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

你有没有尝试过

Richedit1.SelStart :=RichEdit1.GetTextLength();
SendMessage(RichEdit1.handle, EM_SCROLLCARET,0,0);
于 2011-06-16T13:02:44.953 回答