【问题标题】:Checking if a Windows forms scroll bar is scrolled all the way down?检查 Windows 窗体滚动条是否一直向下滚动?
【发布时间】:2011-03-09 13:02:40
【问题描述】:

我有一个作为日志的富文本框。当附加新消息时,日志会自动向下滚动,这很好。唯一的问题是当用户想要查看以前的日志中的某些内容时;如果添加了新消息,该框会自动向下滚动并阻止用户看到任何内容。 我希望能够检查富文本框是否一直向下滚动,以及是否没有向下滚动。

目前我可以获取虚拟文本空间中的滚动位置(带有 EM_GETSCROLLPOS 的 SendMessage)。我还可以使用 GetScrollBarInfo pinvoke 获取滚动条信息。但是如何弄清楚虚拟文本空间的底部是什么?

谢谢!

【问题讨论】:

  • 如果检查文本的结尾是否在可见区域中会不会更直观?
  • 当然可以,但你怎么能做到呢?
  • 呃,我只记得带有 WM_GETTEXT 的 SendMessage。必须把它挖出来,现在手头没有那个,对不起,但今天左右会试着把它挖出来。

标签: c# .net windows winforms


【解决方案1】:

为您的RichTextBox 使用vScrollBar 控件并处理其滚动事件

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

【讨论】:

    猜你喜欢
    • 2021-09-01
    • 1970-01-01
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-05-18
    • 2016-09-03
    • 2012-04-18
    • 1970-01-01
    相关资源
    最近更新 更多