C#代码:
System.Reflection.Assembly asm = System.Reflection.Assembly.GetExecutingAssembly(); // Note that the name for the embedded resource is case sensitive and must match the file name. Bitmap bmp = new Bitmap(asm.GetManifestResourceStream(asm.GetName().Name + "." + "pic.png")); e.Graphics.DrawImage(bmp,5,8,new Rectangle(0,bmp.Width,bmp.Height),GraphicsUnit.Pixel)
GetManifestResourceStream得到的Stream是null(VB中为Nothing)的<a href="/tag/jiejue/" target="_blank" class="keywords">解决</a>其实最主要的是在将<a href="/tag/tupian/" target="_blank" class="keywords">图片</a>资源的<a href="/tag/shuxing/" target="_blank" class="keywords">属性</a>设置为"嵌入的资源":"<a href="/tag/shuxing/" target="_blank" class="keywords">属性</a>-<a href="/tag/shengcheng/" target="_blank" class="keywords">生成</a>操作-嵌入的资源"注意GetManifestResourceStream<a href="/tag/hanshu/" target="_blank" class="keywords">函数</a>的参数:asm.GetName().Name获得的只是当前命名空间的<a href="/tag/mingcheng/" target="_blank" class="keywords">名称</a>,如果在"pic.png"<a href="/tag/tupian/" target="_blank" class="keywords">图片</a>在当前工程的Photo目录下,那么该参数就该写成asm.GetName().Name + "."+ "Photo" + "." + " pic.png"。
VB代码
Function GetResourceImage(ByVal aStrFileName As String) As Image Dim MyAsm As Reflection.Assembly = Reflection.Assembly.GetExecutingAssembly() Dim aStream As System.IO.Stream = MyAsm.GetManifestResourceStream(MyAsm.GetName().Name & "." & aStrFileName) If aStream Is Nothing Then Return Nothing Else Return New Drawing.Bitmap(aStream) End If End Function