从资源中加载.rtf文件到RichTextBox

4

我看到了一些关于这个主题的帖子,但是它们中没有一个适用于我的情况。在我的Windows Forms应用程序中,我有一个普通的Resources目录,其中包含一些图像和.rtf文件。它看起来像这样:

enter image description here

对我而言,从中加载图片没有问题,例如:

Bitmap bmp = Properties.Resources.Cut_6523;

但是,出于某些原因,我无法对.rtf文件执行相同的操作(只有位图可用)。

我做错了什么?

3个回答

5
当您使用资源设计器将 .rft 文件存储为资源时,资源设计器会为其创建一个返回富文本的 string 属性。
因此,您可以使用 SelectedRtf 属性将 RichTextBox 内容设置为富文本。
this.richTextBox1.SelectAll();
this.richTextBox1.SelectedRtf = Properties.Resources.YourRTFResourceName;

另外一个选项是,您可以在运行时将该资源缓存为应用程序目录中的文件,然后使用richTextBox1.LoadFile来加载富文本。


当我将.rtf文件存储为资源时,它会被添加到“文件”类别中。虽然后来使用Properties.Resources.MyRTFResourceName返回带有RTF格式的字符串是正确的,但我无法将其Persistence属性更改为Embdeeded with .resx。我能做些什么吗? - Paweł Poręba
谢谢,我使用了这个并且帮了我很多。 - Jonathan Shields

0

我不确定这段代码是否适用于C#,我是为了.Net尝试转换这段代码。

RichTextBox1.LoadFile(Application.StartupPath & "\user_guide.rtf")

那是我在“VB.NET”上的代码。


谢谢,但我想把一个文件放到资源中,这样它就会被嵌入。 - Paweł Poręba

0

这只是您的文件所在的文件夹,位于您的磁盘上。在您的项目中,还有一个.resx文件(可能在属性下)。通过双击打开该文件,并将您的.rtf文件从解决方案资源管理器拖放到.resx文件的设计器视图上。


嗨。那差不多解决了我的问题。我的意思是,我可以从“资源”中引用文件,但我无法更改它们的“持久性”属性为“与.resx嵌入”,就像我可以对图像做的那样。你有任何想法为什么会这样吗? - Paweł Poręba

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