2017-08-01 80 views
-1
Public Class Form2 
    Private Sub TextBox1_TextChanged(sender As Object, e As EventArgs) Handles TextBox1.TextChanged 

    End Sub 

    Private Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
     If TextBox1.Text = 123456 Then 
      MsgBox("Activated") 
     ElseIf TextBox1.Text = 1234567 Then 
      MsgBox("Activated2") 

     End If 
    End Sub 
End Class 

我有一個輸入框,有2個組合給你一個msgbox,但是如果輸入是其他內容,我該如何獲取它呢?在vb.net中,是否有其他變量?

+0

我相信在Else-Block之前如果? – muffi

+0

還是開關盒? –

回答

1
If TextBox1.Text = 123456 Then 
    MsgBox("Activated") 
ElseIf TextBox1.Text = 1234567 Then 
    MsgBox("Activated2") 
Else 
    MsgBox(TextBox1.Text) 
End If 
2

首先,將Option Strict On放在代碼文件的頂部。這會告訴你,你不應該檢查一個字符串是否等於一個整數。

enter image description here

你可以改變的整數轉換爲字符串,或嘗試解析字符串爲整數。比較兩個字符串會更安全(不太容易出現例外)。

If TextBox1.Text = "123456" Then 
    MsgBox("Activated") 
ElseIf TextBox1.Text = "1234567" Then 
    MsgBox("Activated2") 

現在爲您的問題。我建議使用Select/Case以提高可讀性和額外的靈活性。處理兩個以上的案件時,我傾向於使用它。

Select Case TextBox1.Text 
    Case "123456" 
     MsgBox("Activated") 
    Case "1234567" 
     MsgBox("Activated2") 
    Case Else 
     MsgBox("Else") 
End Select 

一個好處是,你只需要一次評估TextBox1.Text,這似乎不是一個字符串屬性很重要,但如果它是一個函數調用或某些屬性的東西會在幕後,你不一定要調用那兩次。在If/Else的情況下,您需要一個臨時變量,在Select/Case中您不需要它(並不是說它不會在幕後創建)。

另一個好處是>= AND <=的簡寫:您可以檢查一系列值。

Case "1234567" To "12345678" 

將按字母順序覆蓋這兩個字符串之間的所有情況。

最後,存在用於Or速記以及

Case "1234567", "2222222" 

將涵蓋任一這些情況下在一個單一的情況下。

+0

最後有人提到房間裏的大象 - 選項嚴格! – Plutonix

+0

你還沒到這裏;有人不得不。 – djv

相關問題