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

问题描述:

首先,我是vb 2010的新成员,到目前为止我都很喜欢它。这就是说我遇到了一个与我目前的项目有关的问题。如何从vb 2010中的资源文件加载图像expresss?

基本上我已经创建了一个计时器,所有的作品都很好。我的问题在于,我的定时器加载巴纽为每分钟/秒和我连接,像这样的图片:

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

那么另一台计算机上运行此呈现的代码无用该位为计算机没有这些文件在本地,程序将以错误结束,因为它找不到.png文件。

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

原来这就是我在这里找到:

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

我知道这段代码是错误的,因为我现在越来越在2010年2个VB错误我设法使这项工作是唯一的出路指定文件名。但是我想要做的是使用“minutes.text”和“seconds.text”中的whats来指定文件名。

有没有办法解决这个问题?或者我必须使用一堆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

分钟是文本框还是资源?您的问题的标题不再适合,因为您的代码示例现在似乎是从磁盘加载文件。 – Origin 2012-01-07 06:04:14

+0

分钟是一个从文本框中加载文本以用于定时器的标签。定时器在标签框中工作正常,但我试图阅读标签中的内容并使用它将图像加载到图片框中。 – CustomZ02 2012-01-07 07:08:42

我认为你正在寻找这样的:

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) 
+0

是的,这就是我一直在寻找:)。先生非常感谢您! – CustomZ02 2012-01-07 09:12:06

我已经试过这种形式,它是功能

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

+0

这是从哪里调用Image.FromBitmap?我的意思是我们需要导入一些东西? – gumuruh 2014-05-29 01:02:24