作者hamsters (hamster)
看板C_Sharp
标题Re: [问题]WIN32应用程式如何让PICTUREBOX载入资源 …
时间Wed May 21 17:14:25 2008
假设专案预设命名空间叫 A,ImageFile.jpg 放在专案的 B 资料夹中,编译後这个影像
资源名称会是 A.B.ImageFile.jpg,当然前提是该影像已经设定为内嵌资源。
影像放在 .resx 档的话 Visual Studio 预设会帮你产生一个名称相同的类别 (例如资源
档是 Resources.resx,Visual Studio 会自动产生一个名称为 Resource 的静态类别,
不过要使用 Visual Sudio 建立这个资源档才行),而该类别中会有一个属性供你读取影
像 (拿刚刚的 Resouece 当范例,Resource.ImageFile 属性就会传回这张影像)。
※ 引述《THKLuga (东大废柴协会会长)》之铭言:
: 同标题,小弟我刚接触C#,编辑WIN32应用程式时
: 想要让picturebox1在执行後载入图档
: 要载入的图案放在resources里面
: 看了看MSDN里面没有这样的语法
: 使用了MSDN中将内嵌资源载入的程式码如下:
: System.Reflection.Assembly thisExe;
: thisExe = System.Reflection.Assembly.GetExecutingAssembly();
: System.IO.Stream file =
: thisExe.GetManifestResourceStream("AssemblyName.ImageFile.jpg");
: this.pictureBox1.Image = Image.FromStream(file);
: 我把程式码放在FromLoad 事件里面
: 其中"AssemblyName.ImageFile.jpg"这部分似乎是要改成资源的档案名称
: 我把图片档案命名为ImageFile.jpg,上面名称也改成ImageFile.jpg
: 执行後this.pictureBox1.Image = Image.FromStream(file);这行程式出问题
: 原因是传回值为NULL...应该是找不到档案
: 请问是哪里出问题了呢?
: 如果要放在.RESX资源档里面的话,又该如何更改程式码呢?
: 请教各位大大了,万分感激
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.160.71.210