一旦我将此行添加到代码中:
this.tsbAdd.Image = Bitmap.FromFile(@"..\..\Resources\add.bmp");
我无法打开该表单的编辑器。
我可以按应有的方式编译应用程序和图像。
预期结果 - 在不破坏设计师的情况下显示新图像。
真实结果 - 新形象打破设计师。
一旦我将它构建到 .exe 中,它就不会打开。没有图像,它可以完美地工作。
一旦我将此行添加到代码中:
this.tsbAdd.Image = Bitmap.FromFile(@"..\..\Resources\add.bmp");
我无法打开该表单的编辑器。
我可以按应有的方式编译应用程序和图像。
预期结果 - 在不破坏设计师的情况下显示新图像。
真实结果 - 新形象打破设计师。
一旦我将它构建到 .exe 中,它就不会打开。没有图像,它可以完美地工作。
不,它不会。图片将被构建,但通过此路径引用它将不起作用。
资源文件将内置到您的 exe 中,但不在“....\Resources\add.bmp”中。这个路径只存在于你的IDE配置位置,当你的程序在“bin\Debug”时,你懂吗?
想象一下,您将 exe 放入 C:\,那么“....\Resources”在哪里?您不能以这种方式引用图像。
您应该在项目面板中添加资源(我相信您已经做到了),并且您获取此文件的方式是 via ResourceManager
,而不是使用此路径。像这样:
ResourceManager rm = Resources.ResourceManager;
this.tsbAdd.Image = (Image) rm.GetObject("add");
资源管理器将从您构建的 exe 中提取资源位图。仅使用该路径是行不通的。由于设计器没有在 \bin\Debug 中运行,难怪它也被破坏了,因为它无法使用该路径找到您的文件。