如何使用变量大小写选择?

时间:2013-10-27 21:54:00

标签: vb.net visual-studio-2012

我有以下代码:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    Select Case TextBox1.Text
        Case TextBox1.Text.Contains("string")
            MsgBox("tb 1 contains string")
        Case Else
            Msgbox("Invalid command")
    End Select
End Sub

但是,我不知道如何以这种方式使案例选择工作,我试图使它如果文本框1在按下按钮1时包含“字符串”,则msgbox让用户知道。 VS没有抛出任何错误,如果这是有效的代码或者我做错了,我就无法解决。

4 个答案:

答案 0 :(得分:2)

简单地做到

Select Case True
    Case tb1.Text = "foo" And tb2.Text = "bar" : MsgBox("42")
    Case tb1.Text = "foo" : MsgBox("Missing the bar?")
    Case tb2.Text = "bar" : MsgBox("Without a foo?")
    Case Else : MsgBox("fubar!")
End Select

这使您可以自由切换几乎所有内容。

答案 1 :(得分:2)

设计中的case语句应该定义常量值。由于逻辑的复杂性很小,最好使用if / else语句。

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
    If TextBox1.Text.Contains("string") Then
        MsgBox("tb 1 contains string")
    Else
        Msgbox("Invalid command")
    End If
End Sub

答案 2 :(得分:0)

您不能将变量用作case值。它必须是一个常量值。改为使用If / Else语句。

If TextBox1.Text.Contains("string") Then
    MsgBox("tb 1 contains string")
Else
    Msgbox("Invalid command")
End If

使用If的简短版本:

MsgBox(If(TextBox1.Text.Contains("string"), "tb 1 contains string", "Invalid command"))

答案 3 :(得分:0)

考虑到所有现有答案,我将如何编写它:

Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click
  Dim msg As String = GetMessage(TextBox1.Text)
  MessageBox.Show(msg)
End Sub

Private Function GetMessage(text As String) As String
  If text.Contains("string") Then Return "tb 1 contains string"
  Return "Invalid command"
End Function