我以前从不需要使用 TRichEdit,总是使用 TMemo。
当我添加像 TMemo 这样的文本时,我希望 RichEdit 自动滚动到最后。添加一些数据后,看看它的样子:
如您所见,滚动条仍位于顶部,但我希望它在添加文本时位于底部。
我已经“用谷歌搜索”了解决方案,但我找不到一个好的可靠的解决方案。
我以前从不需要使用 TRichEdit,总是使用 TMemo。
当我添加像 TMemo 这样的文本时,我希望 RichEdit 自动滚动到最后。添加一些数据后,看看它的样子:
如您所见,滚动条仍位于顶部,但我希望它在添加文本时位于底部。
我已经“用谷歌搜索”了解决方案,但我找不到一个好的可靠的解决方案。
试试这个代码
RichEdit1.SetFocus;
RichEdit1.SelStart := RichEdit1.GetTextLen;
RichEdit1.Perform(EM_SCROLLCARET, 0, 0);
这是更容易和快速的解决方案:
在 OnChange 事件处理程序中:
SendMessage(RichEdit1.handle, WM_VSCROLL, SB_BOTTOM, 0);
原始答案来自:https ://www.experts-exchange.com/questions/21002277/Richedit-autoscrolling.html
简而言之,您需要将光标放在末尾,或者发送代码向下滚动。
你有没有尝试过
Richedit1.SelStart :=RichEdit1.GetTextLength();
SendMessage(RichEdit1.handle, EM_SCROLLCARET,0,0);