c# - 在拆分富文本时保存段落格式

标签 c# winforms richtextbox

我有一个使用 RichTextBox 呈现 RichText 的复杂方法。 如果富文本不适合页面,我会使用 SelectionStart、SelectionLengthSelectedRtf 属性来获取部分富文本。 但是获取富文本部分后,部分段落格式丢失。 例如,行间距。

如何使用标准的 .Net Framework 方法获取格式正确的部分富文本?

我不需要只复制带有格式的富文本。如果它不适合一页,我需要拆分富文本。如果有任何段落格式,它就会丢失。这是一个丢失了左边距和行距的示例。

enter image description here

最佳答案

好的,由于您实际需要的内容很复杂,我不确定格式文本框是否是正确的解决方案。我知道您可能已经花时间实现它,但请听我说完 - 您会遇到很多问题,因为在许多情况下,文本的格式您正在复制的内容不容易提取,而且您很快就会意识到 RTF 格式的复杂性和非标准性。

如果您正在做的非标准是不值得的,那么尝试让 RTF 做您想做的事是不值得的。在这些情况下,它总是值得回溯,并与其他一些选项一起运行。考虑改用 HTML 控件,这样您将来要添加的任何功能也可能会容易得多。

并且根据您需要的复杂性和其他功能,我建议您使用现有的 HTML 处理控件,并且只需花一点钱就可以了。在这里节省的时间是荒谬的。

Try this

(我不隶属于这家公司,但我以前用过这个控件)

如果您坚持使用 RTF,那么即使是像您描述的那样简单的任务,您也几乎总是会遇到困难。另一方面,使用 HTML 可以迅速解决这样的问题,因为任何格式都可以作为 CSS 应用于整个“框”或应用于可以轻松复制/提取的单个元素。

关于c# - 在拆分富文本时保存段落格式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16355708/

相关文章:

c# - 来自数据库的 EF 模型验证值

c# - 即使未使用变量,是否始终会执行局部变量赋值?

c# - 在 C# 中按下按钮时进行表单验证的最简单方法?

c# - Excel 工作表选择更改事件第一次不会被触发,但第二次会起作用

c# - 如何检查网络上的计算机是否在线?

c#/甲骨文 : open/close connection

C# winform 删除然后将更多项目添加到面板控件

c# - 如何从 RichTextBox 中的鼠标单击点获取插入符位置?

ms-access - MS Access 富文本编辑工具中的字体限制

c# - InvokeRequired 和 BeginInvoke 等效项