我正试图找到一种使用DayOfWeek.Monday
的方法,但要在表单上选择它。
因此,如果用户从下拉组合框中选择星期二,则以编程方式将其DayOfWeek.Tuesday
。
这是当前的代码:
Do Until dtpEndMonth.DayOfWeek = DayOfWeek.Friday
我想说的是:
Do Until dtpEndMonth.DayOfWeek = DayOfweek.Me.Controls("ComboBox1").Value
有什么想法吗?
答案 0 :(得分:1)
如果这种静态方法可行,您可以直接将字符串解析为DayOfWeek-Enum:
Dim dayOfWeekValue = ComboBox1.SelectedValue
Dim dayOfWeek = DirectCast(System.Enum.Parse(GetType(DayOfWeek), dayOfWeekValue), DayOfWeek)
答案 1 :(得分:0)
执行此操作的一种方法是执行以下操作:
' 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
同时具有显示和值成员(通过DataSource
属性)的能力,因此当用户选择人性化的显示值时,它们是实际上选择了一个“数据值”,这是你的代码所处理的。
注意:我没有测试此代码,因此可能存在拼写错误。如果您需要任何澄清或更正,请与我们联系。