【问题标题】:How to retrieve the Font of word from RichTextBox in Winforms?如何从 Winforms 中的 RichTextBox 中检索单词的字体?
【发布时间】:2015-09-22 05:56:42
【问题描述】:

我正在使用 C# 在 WinForms 中开发一个应用程序。它有一个包含 RichTextBox 的小窗口。用户可以在 RichTextBox 中书写,通过按 ctrl+b 和 ctrl+i,他们可以将字体更改为粗体或斜体。当应用程序关闭时,文本被保存。当应用程序重新启动时,文本再次存储到 RichTextBox 中。问题是我无法存储用户正在使用的字体。例如,如果用户有一个粗体字,在应用程序重新启动后,这个词就不再是粗体了。有没有办法存储单词的状态?

【问题讨论】:

    标签: c# winforms fonts richtextbox


    【解决方案1】:

    RichTextBox 的RTF property 返回格式化的文本,所以这就是你需要存储的:

    您可以使用此属性 .. 来提取控件的文本 控件文本中定义的指定 RTF 格式。

    【讨论】:

    • 我可以看到 RichTextBox.RTF 带回了指示每个单词具有什么 RTF 属性的文本。有什么聪明的方法可以逐字提取吗?或者我需要拆分 RichTextBox.RTF 返回的文本并从那里获取?
    • 你能提供更多关于你想要做什么的信息吗?为什么需要解析 RTF?
    • 我有一个富文本框。在此文本框中,用户可以例如按 ctrl+bctrl+i 使文本变为粗体或斜体。当用户关闭应用程序时,他在 RichTextBox 中的文本存储在 XML 文件中。下次用户打开应用程序时,应用程序将查看 XML 文件,如果其中有文本,它将恢复到 RichTextbox。我也想存储 fomat exha 单词的内容。因此,如果用户用斜体写了 Book,我也可以将其恢复为斜体的富文本框。
    • 我们在这里兜圈子。如果您将 RTF 属性的值存储在文件中,然后将其恢复,则格式将被保留。
    • 你说的完全正确,现在可以了。非常感谢!!
    【解决方案2】:

    正如@stuartd 提到的,RTF 属性可用于解决上述问题。我将 myRichTextBox.Rtf 属性存储在一个字符串中,然后存储在一个文件中。应用重新启动后,我读取文件并将读取值分配给 myRichTextBox.Rtf

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-02-11
      • 2020-12-07
      • 1970-01-01
      • 2018-04-14
      • 1970-01-01
      • 2019-10-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多