1

我有以下代码:

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

4 回答 4

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

这使您可以自由地打开几乎所有东西。

于 2013-10-27T21:56:08.033 回答
2

设计的案例语句应该具有定义的常量值。由于逻辑的复杂性很小,最好改用 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
于 2013-10-27T21:58:24.060 回答
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"))
于 2013-10-27T21:56:23.850 回答
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
于 2013-10-27T22:52:18.213 回答