【发布时间】:2013-06-06 11:52:50
【问题描述】:
我有一个 RichTextBox,它有时包含大量需要滚动才能看到的文本。加载/输入文本并单击按钮后,应用程序将逐步浏览文本,一次一个字符,进行更改。
我正在尝试滚动 RichTextBox 的内容,以将当前发生更改的行保持在框的中间。
我可以将插入符号移动到顶部和底部,这会将文本向下移动并将插入符号放在框的顶部或将其向上移动并将插入符号分别放在框的底部。
我可以将插入符号放置在给定字符上,但取决于该字符在文本的可见部分(文本框内)中的位置,插入符号可能位于框的顶部或底部附近,如何是否移动整个文本以使插入符号所在的行滚动到框的垂直中间?
希望这一切都有意义。
【问题讨论】:
-
您是否尝试过简单地将 SelectionStart() 属性设置为正确的位置,然后调用 ScrollToCaret()?确保 RichTextBox 有焦点。
-
实际上我只是回来说我也刚刚尝试过使用它。但是,对于包含 15,356 个字符的文本文件,此方法仅保证插入符号位于文本的可见部分。和以前一样,它可能位于顶线或底线,或介于两者之间的任何位置。我希望使用我的代码调整滚动,以便在滚动到插入符号后,我希望该行文本位于框的垂直中心。
标签: c# scroll richtextbox