2012-01-16 216 views
0

我有一個按鈕,我希望它檢查一個條件來顯示不同的msgbox。如果else語句在vb

下面是我的代碼:

Dim a As String = ""; 

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If ((a = "a") & (DetailsSelectedComment.Visible = True)) Then 
     MsgBox("Have") 
    Else 
     MsgBox("No have") 
    End If 

End Sub 

但我得到以下錯誤,當我在按鈕上點擊。

「輸入字符串的不正確的格式。」

+1

這也正是爲什麼你應該確保選項嚴格上是在你的項目屬性或在每個代碼文件的頂部設置兩種。 – 2012-01-16 14:29:37

回答

0

首先從你的代碼中刪除";"同時聲明變量"a" Dim a As String = "";Dim a As String = ""

而對於在VB.Net做的操作,我們應該使用AND和ANDALSO

+0

不是'和',*只* *還有'。 – 2012-03-18 22:00:20

1

我不是VB專家 - 但我認爲這是因爲

If ((a = "a") & (DetailsSelectedComment.Visible = True)) 

And更換&

請參閱& Operator in VB - 它是一個字符串連接操作符 - 不是布爾操作。

+0

謝謝..它的工作..我已經搞亂了不同的編程語言的所有語法.. – 2012-01-16 11:33:06

+0

輕鬆完成 - 作爲一個C#開發人員,每當我必須寫VB時,我開始覺得我不能再鍵入! – 2012-01-16 11:44:33

0

你應該使用AND運營商。在VBnet中使用&連接。

Dim a As String = "" 

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If ((a = "a") AND (DetailsSelectedComment.Visible = True)) Then 
     MsgBox("Have") 
    Else 
     MsgBox("No have") 
    End If 
End Sub 
0
  1. 分號 「;」在Dim a As String = "";需要刪除。
  2. &在VB.net中用於連接而不是邏輯按位運算符。

變化

If ((a = "a") & (DetailsSelectedComment.Visible = True)) Then

If ((a = "a") And (DetailsSelectedComment.Visible = True)) Then

+0

謝謝..它的工作..我已經搞亂了不同的編程語言的所有語法.. – 2012-01-16 11:31:28

0
Dim a As String = "" 

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If ((a = "a") ANDALSO (DetailsSelectedComment.Visible = True)) Then 
     MsgBox("Have") 
    Else 
     MsgBox("No have") 
    End If 
End Sub 

的&運營商不是二進制邏輯運算,只是字符串連接。 您可以使用AND或ANDALSO(如果第一個條件爲假,ANDALSO將終止聲明,儘管AND會檢查第二個條件,如果第一個條件爲假)

0

代碼有幾個錯誤,不幸的是所有迄今爲止的答案至少沒有提到這些方面之一。

  1. 語句不是用VB中的分號分隔的。

  2. &是字符串連接運算符。要測試連詞,請使用AndAlso。要測試分離,請使用OrElse。事實上,即使在C#中,&在這裏也是錯誤的,因爲它是按位和,但是您希望在C#中使用邏輯連接。

  3. 不要將布爾值與文字TrueFalse比較,那是無意義的操作。只需直接編寫/測試布爾值即可。

  4. 不要在條件周圍使用多餘的括號......過度嵌套的括號表達式會使代碼難以閱讀。

  5. 如果您在類級別聲明變量,請使用Private而不是Dim

  6. 總是,總是在您的項目設置中啓用Option Strict On

這給我們留下了:

Private a As String = "" 

Protected Sub Button1_Click(sender As Object, e As EventArgs) Handles Button1.Click 
    If a = "a" AndAlso DetailsSelectedComment.Visible Then 
     MsgBox("Have") 
    Else 
     MsgBox("No have") 
    End If 
End Sub