Один из способов сделать это было бы сделать что-то вроде этого:
' On Form_Load()
Dim daysOfWeek = {New KeyValuePair(Of DayOfWeek, String)(DayOfWeek.Sunday, "Sunday"),
New KeyValuePair(Of DayOfWeek, String)(DayOfWeek.Monday, "Monday"),
...,
New KeyValuePair(Of DayOfWeek, String)(DayOfWeek.Saturday, "Satruday")}
Me.ComboBox1.DataSource = daysOfWeek
Me.ComboBox1.ValueMember = "Key"
Me.ComboBox1.DisplayMember = "Value"
...
Затем, когда вы хотите получить выбранное значение:
Dim selectedDayOfWeek = CType(Me.ComboBox1.SelectedValue, DayOfWeek)
Этот подход использует возможностьиметь ComboBox
, иметь и Display, и Value Value (через свойство DataSource
), так что когда пользователь выбирает удобное для отображения значение, он фактически выбирает «значение данных»под прикрытием, что ваш код имеет дело.
Примечание: я не тестировал этот код, поэтому могут быть опечатки.Если вам нужны какие-либо разъяснения или исправления, дайте мне знать.