我有以下代码:
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没有抛出任何错误,如果这是有效的代码或者我做错了,我就无法解决。
答案 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