我在我的表单中添加了图片框,并从image
属性下的属性中导入了2张图片我选择了第一张图片,当应用程序启动时和我的start button event
内部我希望将我的图片更改为另一张图片。
这就是我的尝试:
pbIndicator.Image = Image.FromFile(@"..\Resources\indicator_green.png");
但是找不到文件异常错误。
答案 0 :(得分:2)
你应该可以这样做:
pbIndicator.Image = Resources.indicator_green;
答案 1 :(得分:1)
请确保在属性窗口中Build Action
位于Content
,且Copy to Output Directory
位于Copy if newer
。
如果你想要它是内容。否则使用 Shadow Wizard 给出的答案。
答案 2 :(得分:0)
正如我在评论中写道,如果indicator_green.jpg
是通过资源文件(Resources.resx
)包含为资源的图像,那么它将不会被复制到输出目录(这意味着它在您的项目文件夹中,因为它用于构建可执行文件,但它将嵌入到程序集中,而不是单独部署)。
资源文件(默认情况下)将您添加的资源放在Resources
文件夹中(然后链接)。您始终可以使用生成的资源代码文件访问它们:
pbIndicator.Image = Properties.Resources.indicator_green;
您可以根据项目中的内容更改名称空间Properties
和属性名称(默认情况下,属性名称与资源名称相同,然后与原始文件名称相同)。
当然,您不必将资源嵌入程序集中。如果要将它们部署为独立文件,只需右键单击“资源”文件夹并添加现有文件。在该文件的属性窗口中,选择Copy for copy for copy to output directory et et voila,您将能够阅读它:
pbIndicator.Image = Image.FromFile(@"Resources\indicator_green.png");
请注意Resources
文件夹不是输出目录的子目录(不要忘记源文件不是安装的一部分)。
无论如何,我建议你不要那样构建路径,稍微好一点就是不要依赖当前文件夹:
pbIndicator.Image = Image.FromFile(
Path.Combine(Application.StartupFolder, @"Resources\indicator_green.png");
您不仅限于Resources
文件夹,您可以使用任何文件夹(以及任何名称)执行此操作。