2011-02-18 132 views
4

好吧,所以我读了关于加载嵌入式RTF到丰富的文本框,我试图做的时候窗体加载。表单不是主窗体,它是单击控件时加载的第二种窗体。这是我在窗体上加载时:加载嵌入式资源.rtf文件到richtextbox加载C#

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); 
    } 
} 

在Solution Explorer中的RTF文件显示作为一种资源和构建操作设置为嵌入的资源。

当我点击按钮加载表单时,它显示为预期,但没有任何反应。 RTF格式的内容似乎并没有显示:/

我只能假设我做错了:(

这个新手任何帮助,将不胜感激

回答

9

我想通了:

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

需要的是:

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

编辑:出于某种原因,这阵子我不能让上面的代码工作,但我发现另外一个,这样做是希望要么/或将有一定的帮助,以新编码器在那里:)

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

将其标记为答案朋友:)。 – 2011-03-07 16:31:04

2

我想创建一个名为Help.rtf的rtf帮助文件,并将其作为资源进行存储,因此可以在加载帮助窗体而不在应用程序文件夹周围挂着一个Help.rtf的情况下加载它。

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

总之,一旦这样做的目的,那么下面的工作:

RichTextBox1.rtf = My.Resources.Help 

显然,这是不够的只是拖动&删除,复制甚至使用“Solution Explorer中的”添加文件!

在这个问题上花了3天,所以我希望有人发现它有用。