Получение DayOfWeek от ComboBox - PullRequest
0 голосов
/ 26 июля 2011

Я пытаюсь найти способ использования DayOfWeek.Monday, но выбирая его в форме.

Так что, если пользователь выбирает вторник из выпадающего списка, то программно это будет DayOfWeek.Tuesday.

Это текущий код:

Do Until dtpEndMonth.DayOfWeek = DayOfWeek.Friday

Я хочу сказать что-то вроде:

Do Until dtpEndMonth.DayOfWeek = DayOfweek.Me.Controls("ComboBox1").Value

Есть идеи?

Ответы [ 2 ]

1 голос
/ 26 июля 2011

Если этот статический подход является жизнеспособным, вы можете проанализировать строку непосредственно в DayOfWeek-Enum:

Dim dayOfWeekValue = ComboBox1.SelectedValue
Dim dayOfWeek = DirectCast(System.Enum.Parse(GetType(DayOfWeek), dayOfWeekValue), DayOfWeek)
0 голосов
/ 30 июля 2011

Один из способов сделать это было бы сделать что-то вроде этого:

' 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), так что когда пользователь выбирает удобное для отображения значение, он фактически выбирает «значение данных»под прикрытием, что ваш код имеет дело.

Примечание: я не тестировал этот код, поэтому могут быть опечатки.Если вам нужны какие-либо разъяснения или исправления, дайте мне знать.

...