繁体   English   中英

更改图片框图片

[英]Change picture box picture

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

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

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

您应该能够执行以下操作:

pbIndicator.Image = Resources.indicator_green;

确保在属性窗口中,如果“ Build Action位于“ Content Build Action上,并且“ Copy to Output Directory位于“ Copy if newer

如果您想让它满足。 其他使用阴影向导给出的答案。

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

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

pbIndicator.Image = Properties.Resources.indicator_green;

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

当然,您不会被迫将资源嵌入到程序集中。 如果要将它们部署为独立文件,只需右键单击Resources文件夹并添加一个现有文件。 在该文件的属性窗口中,选择总是复制以复制到输出目录等等,您将可以通过以下方式读取它:

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

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

无论如何,我建议您不要建立这样的路径,更好的一点是不要依赖当前文件夹:

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

您不仅限于Resources文件夹,还可以使用任何文件夹(和任何名称)进行操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM