C#,RichTextBox:如何实现逐行滚动?

Posted

技术标签:

【中文标题】C#,RichTextBox:如何实现逐行滚动?【英文标题】:C#, RichTextBox: how to implement scrolling line by line? 【发布时间】:2009-12-01 07:40:30 【问题描述】:

我的 C# 应用程序中有一个 RichTextBox。启用水平和垂直滚动。

当前行为: 当我到达可见文本区域的最后一行时,就会出现水平滚动。但是滚动是按像素进行的,而不是按行。所以我看不到我正在输入的文本,因为该行本身部分(或完全)不可见,直到我使用箭头按钮进行垂直滚动或拖动垂直滚动条。

预期行为: 我想让 RichTextBox 滚动类似于在记事本中滚动。在记事本中,我总是看到我正在输入的行。基于行的滚动非常流畅。

有什么想法吗? RichTextBox 中的一些隐式设置?还要别的吗? 谢谢,

【问题讨论】:

【参考方案1】:

向 TextChanged 事件添加事件处理程序,并以编程方式向下滚动 签出:this post at bytes.com

【讨论】:

阿列克谢,感谢您的回答。嗯,好像没看懂。在 MSDN 中:此事件支持 .NET Framework 基础结构,不打算直接从您的代码中使用。你能给我一些线索吗? Alexey,我从 bytes.com 复制粘贴了示例并成功运行。但是还是有同样的毛病:走到最后一行的时候,只能看到一半…… 对于第一条评论 - msdn.microsoft.com/en-us/library/… 对于第二条评论 - 尝试使用传递给 SendMessage 方法的参数 (max -richTextBox1.Height)... Alexey,谢谢,我会尝试使用它。顺便说一句,很奇怪,对于这样一个常见的任务没有最佳实践解决方案...... 嘿,我找到了另一种解决方案。您可以在 Panel 上放置 RichTextBox 并指定 Padding。这是完整的故事:msdn.microsoft.com/en-us/library/ms229728.aspx 它有效!我试过了,对结果很满意。一石二鸟:美观的填充和平滑的滚动。希望它可以帮助别人。

以上是关于C#,RichTextBox:如何实现逐行滚动?的主要内容,如果未能解决你的问题,请参考以下文章

C# RichTextBox 逐行扫描

C#超简单方法实现两个richtextbox控件滚动条同步滚动

C# 实现richtextbox 文字自动滚动 首尾相接循环

C#中,如何让richTextBox旁边的滚动条始终处于最下方

在 C# RichTextBox 中为 32 位滚动设置水平滚动条

禁用 RichTextBox 中的滚动(c#)