如何从vb 2010 express中的资源文件加载图像?

时间:2012-01-07 06:00:34

标签: vb.net visual-studio-2010 resources my.resources

首先,我是vb 2010的新手,到目前为止我已经享受了我能用它做的事情。话虽如此,我的当前项目遇到了问题。

基本上我已经创建了一个计时器,并且在该部分上一切正常。我的问题在于我的计时器为每分钟/秒加载.png而我正在链接图像:

Picturebox1.Image = Image.Fromfile("C:\timer\images\" & minutes.text & ".png")
Picturebox2.Image = Image.Fromfile("C:\timer\images\" & seconds.text & ".png")

因此,在另一台PC上运行此代码会使该代码无用,因为该计算机本地没有这些文件,并且程序因错误而无法找到.png文件时会以错误结束。

我做了一些在线搜索,发现了一些网站和视频教程如何从资源文件中读取。但是这样做我无法使其正常运作。

所以这就是我在这里找到的:

Picturebox1.image = My.Resources.minutes.text
Picturebox2.image = My.Resources.seconds.text

我知道这段代码是错误的,因为我现在在vb 2010中遇到了2个错误。我设法完成这项工作的唯一方法是指定文件名。但我想要做的是在“minutes.text”和“seconds.text”中使用什么来指定文件名。

有解决方法吗?或者我是否必须使用一堆if语句来执行此操作?

示例:

If minutes.text = 1 Then
picturebox1 = My.Resource._1
End If
If seconds.text = 12 Then
Picturebox2 = My.Resource._12
End If

如果有一个简单的修复,我会讨厌做一堆if语句。所以我来这里寻求帮助。

2 个答案:

答案 0 :(得分:3)

我认为你正在寻找这个:

Dim currentMin as string = "_" & minutes.text ' it would look something like this: _1
picturebox1.Image = CType(My.Resources.ResourceManager.GetObject(currentMin), Image)

Dim currentSec as string = "_" & seconds.text
picturebox2.Image = CType(My.Resources.ResourceManager.GetObject(currentSec), Image)

答案 1 :(得分:0)

我已经尝试过这种形式,而且功能正常

Picturebox1.Image = Image.FromHbitmap(My.Resources.imagename.GetHbitmap())