2011-03-09 126 views
5

我有一个充当日志的富文本框。当添加新消息时,日志会自动向下滚动,这很好。唯一的问题是用户何时想从之前查看日志中的内容;如果附加了新消息,该框会自动向下滚动并阻止用户看到任何内容。 我希望能够检查富文本框是否一直向下滚动,如果它不是向下滚动。检查Windows窗体滚动条是否一直向下滚动?

目前我可以在虚拟文本空间(带EM_GETSCROLLPOS的SendMessage)中获取滚动位置。我也可以通过GetScrollBarInfo来获取滚动条信息。但是,我怎么知道虚拟文本空间的底部是什么?

谢谢!

+0

如果选中文本的结尾是否是在可见光区域也Wouln't更直观? – TheBlastOne 2011-03-09 13:57:06

+0

当然,但你怎么能做到这一点? – Janiels 2011-03-09 16:26:20

+0

Ergh,带WM_GETTEXT的SendMessage是我记得的。不得不把它挖出来,现在手边没有这个,对不起,但是今天会试着挖出来。 – TheBlastOne 2011-03-14 07:29:00

回答

2

使用vScrollBar控制你的RichTextBox和处理其Scroll事件

private void vScrollBar1_Scroll(object sender, ScrollEventArgs e) 
    { 
     if (e.Type == ScrollEventType.Last) 
     { 
      //scrollbar is all the way down 
     } 
     else 
     { 
      //user has scrolled up 
     } 
    }