在加载C#上将嵌入式资源.rtf文件加载到richtextbox

时间:2011-02-18 06:59:21

标签: c#-4.0 resources richtextbox rtf embedded-resource

好的,所以我读到有关将嵌入式rtf加载到富文本框中的问题,我正在尝试在表单加载时执行此操作。表单不是主窗体,它是在单击控件时加载的第二种窗体。这是我加载时在表单上的内容:

private void Credits_Load(object sender, EventArgs e)
{
    Assembly creditAssm = Assembly.GetExecutingAssembly();
    using (Stream creditStream =
    creditAssm.GetManifestResourceStream("YDisplayView.credits.rtf"))
    {
        creditsRichTextBox.LoadFile(creditStream, RichTextBoxStreamType.RichText);
    }
}

在解决方案资源管理器中,rtf文件显示为资源,构建操作设置为嵌入资源。

当我单击按钮加载表单时,它会按预期显示,但没有任何反应。 rtf的内容似乎没有显示:/

我只能假设我做错了:(

对这位新手的任何帮助都将不胜感激。

2 个答案:

答案 0 :(得分:8)

我明白了:

creditAssm.GetManifestResourceStream("YDisplayView.credits.rtf"))

需要:

creditAssm.GetManifestResourceStream("YDisplayView.Resources.credits.rtf"))

编辑 由于某些原因,这次我无法使上述代码生效,但我找到了另一个希望无论是/或将是对那里的新编码员有所帮助:)

string rtf = yourAppName.Properties.Resources.yourEmbeddedRTFName;
        yourRichTextBox.Rtf = rtf;

答案 1 :(得分:3)

我想创建一个名为Help.rtf的rtf帮助文件,并将其存储为资源,因此可以在加载帮助表单时加载它,而不会在应用程序文件夹周围放置Help.rtf。

我发现我需要通过菜单的项目 - >将rtf文件添加到资源中。 '你的名字空间'属性...... 然后导航到资源选项卡,然后添加项目等等......当我输入'My.Resource'时,intellisense会在它的下拉列表中提供rtf文件。现在,包括我添加的帮助文件在内的资源列表显示(没有扩展名,这是正常的)。

简而言之,一旦完成,那么以下工作:

RichTextBox1.rtf = My.Resources.Help

显然仅使用“解决方案资源管理器”拖放,复制甚至添加文件是不够的!

对这个问题花了3天时间,所以我希望有人觉得它很有用。