【问题标题】:Richtextbox - scroll only if scrollbar is at bottomRichtextbox - 仅当滚动条位于底部时才滚动
【发布时间】:2014-11-03 00:24:06
【问题描述】:

我有一个 RichTextBox,它会随着每个 AppendText 滚动,但只有在滚动条位于底部时才会滚动。例如,我想在将文本附加到 RichTextBox 时轻松地从 RichTextBox 的中间选择和复制某些内容。尝试了许多解决方案,但没有一个真正有效。这甚至可能吗?

【问题讨论】:

    标签: c# scroll richtextbox


    【解决方案1】:

    这取决于您如何追加,但您可以告诉它在追加后将焦点返回到选择(或只是光标)所在的位置。

    例如(未经测试,假设 WinForms):

    int selStart = rtb.SelectionStart
    int selLength = rtb.SelectionLength
    rtb.AppendText("test")
    rtb.SelectionStart = selStart
    rtb.SelectionLength = selLength
    

    这将始终将选择推回附加之前的位置 - 但如果它之前位于底部,则不会向下滚动。对我来说,这似乎是预期的行为。

    【讨论】:

    • 我试过了,但这个解决方案犯了很多错误。例如- 如果您选择了某些内容,则无法滚动。 - 如果您没有选择任何内容并单击文本底部,则光标会向上直到到达顶部。现在,如果添加了更多文本,则在您再次滚动之前它是不可见的。
    • 我会说Skype文本框的行为是我需要的文本框行为。
    • 那么你需要获取滚动条本身的位置。查看 Scrollviewers。
    • 滚动查看器似乎仅适用于 WPF。我绑定到 WinForms,因为我使用 KryptonForms。
    • 好的,那我就留给更有知识的人去尝试帮助吧!
    猜你喜欢
    • 2013-01-11
    • 1970-01-01
    • 2014-12-12
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-22
    • 2017-03-06
    • 1970-01-01
    相关资源
    最近更新 更多