2012-01-16 200 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