首先,我是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语句。所以我来这里寻求帮助。
答案 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())