Я бы посоветовал вам создать массив, содержащий Images
в начале.Вам не следует повторно обращаться к одному и тому же свойству My.Resources
, поскольку оно будет каждый раз создавать новый объект.Например,
Private images As Image() = {My.Resources.image1, My.Resources.image2}
Вы можете просто использовать SelectedIndex
из ComboBox
в качестве индекса в этом массиве.Пока два списка находятся в одном и том же порядке, фактические значения в ComboBox
не имеют значения.Например,
PictureBox1.Image = images(TypeComboBox.SelectedIndex)
РЕДАКТИРОВАТЬ. Другой вариант - создать список, который связывает Images
и текст, связать его с ComboBox
и затем использовать SelectedValue
, например
Dim imagesAndText = {Tuple.Create("1", My.Resources.image1),
Tuple.Create("2", My.Resources.image2)}
With TypeComboBox
.DisplayMember = "Item1"
.ValueMember = "Item2"
.DataSource = imagesAndText
End With
Передав String
и Image
в Tuple.Create
, вы получите Tuple(Of String, Image)
.Кортежи имеют свойства указанных типов с именами Item1
, Item2
и т. Д. В этом случае Item1
вернет значение String
и Item2
Image
.После привязки вы можете получить доступ к выбранному Image
через свойство SelectedValue
, например,
PictureBox1.Image = DirectCast(TypeComboBox.SelectedValue, Image)