Когда ComboBox связан с коллекцией некоторой простой сущности, такой как enum X ..
- , то в комбо отображается строка, возвращаемая
X.ToString()
, которая в этомcase возвращает имя текста перечисления, а - вещь, которая возвращается в качестве значения, из того, что показано, является комбо, это X.
Следовательно, чтобы изменить то, что показывает комбоустановите .SelectedValue
комбо на объект типа X. X в этом случае будет одним из членов перечисления:
cbxType.SelectedValue = CustomerType.SelfEmployed
ValueMember
(и его партнер DisplayMember
) используются дляукажите, какое свойство сложного объекта вы хотите использовать для отображения комбинированного объекта и выбранного значения.
Например, если вы связали свой комбо с List(Of Person)
и у человека есть, среди прочего, свойства FullName и Email, вы можете установить DisplayMember = "FullName"
, чтобы в списке отображалось «Джон Смит, Джейн Доу». .. "и т. д., и вы можете установить ValueMember = "Email"
, чтобы при выборе Джона Смита вызов SelectedValue мог вернуть вас" John.smith@example.com "
SelectedItem будет целым объектом Person. SelectedIndex будет числовым индексом выбранного элемента в списке элементов, который показывает комбо, но помните, что в некоторых случаях показанный список может быть отсортирован в другом порядке, чем базовая коллекция