将一个 .rtf 文件加载到 RichTextBox 中并保持/持久化格式

9

大家好,我将日志文件写入一个有下划线、加粗等格式的.rtf文件中。我已经保存了这个文件,并希望在以后的时间将它读回到RichTextBox中,保持其格式。我尝试了以下方法:

tmpRichTextBox.LoadFile(@"F:\Path\File.rtf", RichTextBoxStreamType.RichText);

它加载了文件,但没有我的原始格式。如果我将.rtf加载到Word中,格式将显示出来。如何将.rtf读回RichTextBox包括其格式?谢谢您的时间。

您提供的代码应该能够正常工作。您尝试使用不同的RTF文件了吗?我只能想象RTF文件中可能存在错误。 - Ian Gregory
是的,它根本没有格式化... - MoonKnight
3个回答

1
如果您可以将日志文件保存为HTML格式,您就可以使用WebBrowser控件读取此文件。像这样:
  private void button1_Click(object sender, EventArgs e)
  {
     string fileName = Path.Combine(Environment.CurrentDirectory, "log1.htm");

      webBrowser1.DocumentText = File.ReadAllText(fileName);
   }

这句话的意思是“这完美地运行”。它包含HTML标记,其中标记将文本加粗。

1

编辑:
有可能你在编程中会丢失格式。某些操作可能会导致格式丢失,例如: richTextBox.Font = newFont;

我曾经遇到过这个问题,但幸运的是我找到了一个解决方法。下面是代码,可以让你在不丢失格式的情况下更改字体:

richTextBox.SelectAll();
richTextBox.SelectionFont = newFont;
string rtf = richTextBox.SelectedRtf;
richTextBox.Font = newFont;
richTextBox.Rtf = rtf;

嗨@Dzienny,它并没有“工作”,因此才有了问题。如果您保存一个RTF文件,然后将其读回到RichTextBox中,格式将会消失。感谢您的时间。 - MoonKnight
嗨@Killercam,将rtf文件加载到“RichTextBox”的代码确实有效。最有可能的是您在代码后期失去了格式。我已编辑答案以解决此问题。 - Dzienny

1
你有没有检查过NRTFTree
这是一个非常棒的用于RTF管理的库!

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接