我正在向TRichEdit中添加行如何关注刚刚添加的行?在Delphi中使用TRichEdit滚动问题
For Idx := 1 to 1000 do
RichEdit.Lines.add(IntToStr(Idx));
编辑
我正是在RichEdit显示的底线只是添加了什么和所有其他行向上滚动
我正在向TRichEdit中添加行如何关注刚刚添加的行?在Delphi中使用TRichEdit滚动问题
For Idx := 1 to 1000 do
RichEdit.Lines.add(IntToStr(Idx));
编辑
我正是在RichEdit显示的底线只是添加了什么和所有其他行向上滚动
这应该工作,如果你只是想滚动到RichEdit中结束:
For Idx := 1 to 1000 do
begin
RichEdit.Lines.add(IntToStr(Idx));
RichEdit.SelStart := RichEdit.GetTextLen;
SendMessage(RichEdit.handle, EM_SCROLLCARET,0,0);
end;
如果这不是你想要的,请看到我的评论上方,澄清你的问题。
谢谢 - 这个作品很好:) – 2009-09-28 21:57:25
你可以试试这个
选项1)当循环完成时设置光标
For Idx := 1 to 1000 do
RichEdit.Lines.add(IntToStr(Idx));
RichEdit.SetFocus;
RichEdit.SelStart := RichEdit.Perform(EM_LINEINDEX, RichEdit.Lines.Count-1, 0) ;
选项2)设置光标r while the loop is executed
For Idx := 1 to 1000 do
Begin
RichEdit.Lines.add(IntToStr(Idx));
RichEdit.SetFocus;
End;
RichEdit.SelStart := RichEdit.Perform(EM_LINEINDEX, RichEdit.Lines.Count-1, 0) ;
再见。
我认为“焦点”通常用于控件。你的意思是你想要选择刚刚添加的文本(将导致下一个操作粘贴),将插入点保持在最后添加的行上(这会导致粘贴一条很长的行)或者可能你的意思是你想滚动到富有的底部? – Argalatyr 2009-09-28 21:39:37
另请参阅此答案:[滚动RichEdit时没有焦点](http://stackoverflow.com/a/9757314/576719)。 – 2012-03-18 10:17:32