this.components = new System.ComponentModel.Container();
                    System.ComponentModel.ComponentResourceManager resources = new System.ComponentModel.ComponentResourceManager(typeof(MainForms));
ToolStripDropDownButton tsddb = new ToolStripDropDownButton();
                        tsddb.AutoSize = false;
                        tsddb.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image;                        //tsddb.Image = Client.Properties.Resources.MenuTestPic;//这样设置能得到                        tsddb.Image = ((System.Drawing.Image)(resources.GetObject("MenuTestPic.Image")));//这样却无法得到?
另外求一些资源文件的应用,这个资源文件调用的时候老报错。比如什么文件已经被破坏之类的。

解决方案 »

  1.   

    反射资源,,,没有不加载你可以参考下
    http://blog.csdn.net/zgke/archive/2009/02/13/3887726.aspx
      

  2.   

    http://dotnet.chinaitlab.com/DotNetFramework/397983_3.html
      

  3.   

    C# Resource的暴露问题
    写一个C#的程序,可能会用到一些资源和配置文件,在C#中有两种方式来暴露我们的资源,一个是Embedded Resource,一个是直接放到运行的目录下(通过Copy to local) 。对于不希望发布后能够被用户修改的资源,应该使用Embedded Resource,而那些希望用户修改的配置就直接Copy to local放到编译好的目录中就好了。对于Embedded Resource,还有一个好处是用户只需要拿到Assembly就可以了。Resource是和Assembly绑定在一起的。不会搞的一大堆的文件。那么,应该如何使用Assembly中的Embedded Resource呢?引用别人的一个列子吧。也算是给自己的一个笔记 /假设/WordProcessingML是项目的名称空间 
    string str = "WordProcessingML.emptyDoc.xml"; 
    //可以使用System.Reflection.Assembly.GetExecutingAssembly().GetName().Name获得默认名称空间 
    //也可以写成这样,比较灵活string str = System.Reflection.Assembly.GetExecutingAssembly().GetName().Name + ".emptyDoc.xml"; 
    System.IO.Stream stream = System.Reflection.Assembly.GetExecutingAssembly().GetManifestResourceStream(str); 
    string strXml = string.Empty; 
       System.IO.StreamReader sr = new System.IO.StreamReader(stream); {     strXml = sr.ReadToEnd(); 
    }     m_xmlDocument.LoadXml(strXml); 重点就是拿到这个resource的 Stream 此外就是Embedded Resource在加载时候的命名问题,首先是项目的默认的命名空间的名字,然后是Dot'.',然后如果是项目文件夹外的资源或者是项目文件夹下的直接资源(没有子文件夹),那么名称就是DefaultNameSpace.ResourceName,如果有子文件夹,那么就是DefaultNameSpace.ChildFolder1.ChildFolder2.ResourceName即可。 
      

  4.   

    http://www.cnblogs.com/getacoder.cn/archive/2006/06/15/370563.html
    http://www.cnblogs.com/freeliver54/archive/2008/11/15/1301272.html
      

  5.   


     这篇文章很有价值,但是我这个问题怎么解释呢?//tsddb.Image = Client.Properties.Resources.MenuTestPic;//这样设置能得到                        tsddb.Image = ((System.Drawing.Image)(resources.GetObject("MenuTestPic.Image")));//这样却无法得到?