更改图片框图片

时间:2013-09-16 07:45:12

标签: c# winforms

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

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

但是找不到文件异常错误。

3 个答案:

答案 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文件夹,您可以使用任何文件夹(以及任何名称)执行此操作。