组合框选择两个值之间的索引

时间:2014-09-15 20:04:22

标签: vb.net

如何为两个值之间的索引选择case 像

Select Case True
        Case ComboBox1.SelectedIndex >= 0 and <= 3
            messagebox.show("Done")
   End Select

1 个答案:

答案 0 :(得分:3)

您的答案在MSDN文档中有关SELECT ... CASE

的内容
Dim index = ComboBox1.SelectedIndex 
Select Case index
    Case 0 To 3
        MessageBox.Show("Done")
    Case Else
        MessageBox.Show("What? Else??")
End Select

修改
一个有趣的情况是以下让我没有明确的解释,所以如果有人可以添加到这个答案是很好的接受:假设有这个代码....(和OPTION STRICT OFF)

Sub Main
    Dim cbo = new ComboBOx()
    cbo.Items.Add("Steve")
    cbo.Items.Add("John")
    cbo.Items.Add("Mark")
    cbo.Items.Add("Andrew")
    cbo.Items.Add("Luke")
    cbo.Items.Add("Robert")
    cbo.Items.Add("Max")
    cbo.Items.Add("Carl")
    cbo.Items.Add("Paul")  ' added 9 items
    cbo.SelectedIndex = 0  ' set Steve as selected
    Select cbo.SelectedIndex
        case cbo.SelectedIndex = 2 to 3
            Console.WriteLine("DONE 2-3")
        case cbo.SelectedIndex = 0 to 1
            Console.WriteLine("DONE 0-1")
        case else
            Console.WriteLine("ELSE")
        End Select
End Sub

我希望DONE 0-1消息,但是此代码返回DONE 2-3,以及小于4的每个其他SelectedIndex。仅在将SelectedIndex设置为4时返回ELSE。 除非在2-3之前移动案例块0-1,否则我没有找到返回DONE 0-1的方法。