[英]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.