更改图片框图片

本文关键字:框图 | 更新日期: 2023-09-27 18:31:23

我在表单中添加了图片框并导入了 2 张图片,从image属性下的属性中,我在应用程序启动时选择了第一张图片,在我的start button event内我想将我的图片更改为另一张图片。这是我尝试过的:

pbIndicator.Image = Image.FromFile(@"..'Resources'indicator_green.png");

但发生"找不到文件"异常错误。

更改图片框图片

你应该能够做这样的事情:

pbIndicator.Image = Resources.indicator_green;

请确保在属性窗口中,如果Build ActionContent上,并且Copy to Output DirectoryCopy if newer上。

如果你想让它成为满足的。否则使用影子向导给出的答案。

正如我在评论中所写indicator_green.jpg如果图像是通过资源文件(Resources.resx)作为资源包含的图像,那么它不会被复制到输出目录(这意味着它在您的项目文件夹中,因为它用于构建可执行文件,但它将嵌入到您的程序集中,而不是独立部署)。

资源文件(默认情况下)会将您添加的资源放在文件夹中Resources(然后链接)。您始终可以使用为资源生成的代码文件访问它们:

pbIndicator.Image = Properties.Resources.indicator_green;

您可以根据项目中的内容更改命名空间Properties和属性名称(默认情况下,属性名称与资源名称相同,然后与原始文件名称相同)。

当然,您不会被迫将资源嵌入程序集中。如果要将它们部署为独立文件,只需右键单击"资源"文件夹并添加现有文件。在该文件的属性窗口中,为"复制到输出目录"选择"始终复制",瞧,您将能够使用以下方法读取它:

pbIndicator.Image = Image.FromFile(@"Resources'indicator_green.png");

请注意,Resources文件夹不会是输出目录的子目录(不要忘记源文件不是安装的一部分)。

无论如何,我建议您不要构建这样的路径,最好不要依赖当前文件夹:

pbIndicator.Image = Image.FromFile(
    Path.Combine(Application.StartupFolder, @"Resources'indicator_green.png");

您不限于Resources文件夹,您可以使用任何文件夹(以及任何名称)执行此操作。