Как вы загружаете изображение из файла ресурсов в VB 2010 Express? - PullRequest
2 голосов
/ 07 января 2012

Прежде всего, я новичок в vb 2010 и до сих пор наслаждался тем, что мне удалось с ним сделать. Это сказало, что я столкнулся с проблемой с моим текущим проектом.

По сути, я создал таймер, и в этой части все работает хорошо. Моя проблема заключается в том, что мой таймер загружает .png для каждой минуты / секунды, и я связывал изображения следующим образом:

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

Я знаю, что этот фрагмент кода неправильный, так как теперь я получаю 2 ошибки в vb 2010. Единственный способ, которым мне удалось выполнить эту работу, - указать имя файла. Но то, что я хочу сделать, это использовать whats в "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 ]

3 голосов
/ 07 января 2012

Я думаю, что вы ищете это:

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 голосов
/ 13 июня 2013

Я пробовал эту форму, и она работает

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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...