Кажется, я не могу найти простой в использовании .net собственный способ получения Combobox для winform-форм .net для отображения одного значения и возврата другого на основе выбора, не создавая свой собственный вспомогательный класс, зная, что winforms будет отображать метод ToString для объекта, который вы в него поместите.
Вот как я делаю это сейчас, очень обобщенно. Сначала создайте вспомогательный класс.
Public Class ListItem
Public Value As Object
Public DisplayString As String
Public Sub New(ByVal NewValue As Object, ByVal NewDisplayString As String)
Value = NewValue
DisplayString = NewDisplayString
End Sub
Public Overrides Function ToString() As String
Return DisplayString
End Function
End Class
затем, чтобы загрузить выпадающий список из коллекции или чего-либо еще.
For Each o as WhateverObject In CollectionIwantToaddItemsFrom
li = New ListItem(o.ValueToReturn, o.ValueToDisplay)
Me.ComboBox1.Items.Add(li)
Next
и, наконец, использовать объект
Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As EventArgs) Handles ComboBox1.SelectedIndexChanged
if me.combobox1.selecteditem is nothing then exit sub
Dim li As ListItem = me.ComboBox1.SelectedItem
Dim o as object = li.value
'do stuff with o.
end sub
Я уверен, что есть кое-что, что я бы лучше использовал в рамках, на который я смотрю. Что это?