我猜测可能是由于多层次目录和命名空间的关系,你读读这篇文章:http://www.csdn.net/develop/read_article.asp?id=15571如果不能解决,告诉我你的代码结构.

解决方案 »

  1.   

    To feels30000 (船长):
    看到你在另一个已经结的帖子中发问,我回答了一下,怕你看不到.贴在这个地方.有什么问题,在这个地方问就好了.看看这个步骤,特别是我贴出的那篇文章(有代码下载).
    1.用ResourceWriter产生一个资源文件.
    ResourceWriter rw = new ResourceWriter("TheAres.resources");Image myImage = Image.FromFile("C:\\logo.gif");rw.AddResource("MyLogo",myImage);
    rw.AddResource("Title","TheAres");
    rw.Close();2.将资源文件添加到工程中.类型为"嵌入的资源".3.用ResourceManager将资源读出.
    Assembly myAssem = Assembly.GetEntryAssembly();ResourceManager rm = new ResourceManager("TheAresAdoNet.TheAres");
    //TheAresAdoNet 是你程序的命名空间,TheAres是TheAres.resources
    this.pictureBox1.Image = (Image)rm.GetObject("MyLogo");
    this.Text = rm.GetString("Title");复杂的资源文件,参考:
    如何在C#中使用内嵌资源文件
    http://www.csdn.net/develop/read_article.asp?id=15571
      

  2.   

    文章和代码我都看过,你所展示的是通过资源文件读取其中影像的例子,
    我大部分情况也是按照你的方法来做,
    在网上我下载到一些原代码,是一些控件,我想把他们移植到我的工程,这些控件是通过直接读取工程中的影像文件来完成工作的,我移植后却一直不能正确读取,我有点不明白他读取的原则是什么,我发一段他里面的代码给你,我想他们的代码你也研究过:
    Assembly myAssembly = Assembly.GetAssembly(Type.GetType("Crownwood.Magic.Menus.MenuControl"));            // Get the resource stream containing the images
                Stream imageStream = myAssembly.GetManifestResourceStream("Crownwood.Magic.Resources.ImagesMenuControl.bmp");            // Load the bitmap from stream
                Bitmap image = new Bitmap(imageStream);
    说明一下,Crownwood.Magic是工程中的一个名字空间,RESOURCE是工程中的一个目录,我不知道他为什么用这个名字空间,ImagesMenuControl.bmp怎么会在这个名字空间里,我认为是"工程名.RESOURCE.IMG...BMP",但我的编译是错的,他的是对的,我移植后不知道该怎样该这个名字空间
      

  3.   

    读取影像不成功的原因是未将图片设置为内嵌资源,只要将图片设置为内嵌资源,就可通过方法myAssembly.GetManifestResourceStream将文件流取出,所以在往工程中添加图象文件时必须将编译类型设置为内嵌,因为他默认的类型是CONTENT