vb.net复杂if语句

时间:2014-10-01 00:18:17

标签: vb.net if-statement

我有一个程序,我使用复杂的if语句。以下if语句没有正确处理:

如果form3上的textbox1.text中包含数据,它永远不会处理第一个else语句,就像它退出sub一样。现在,如果form3 textbox1.text是空白的,它会处理messagebox if if语句究竟是如何写的。以下if语句有什么问题?

 If form3.TextBox1.Text = "" Then
   Dim result1 As DialogResult = MessageBox.Show("Click OK to fill out user settings, or CANCEL to do it later", "Settings", MessageBoxButtons.OKCancel)
   If result1 = Windows.Forms.DialogResult.OK Then
      pwauthen.ShowDialog()
   ElseIf result1 = Windows.Forms.DialogResult.Cancel Then
      Exit Sub
   Else
     If TextBox1.Text = "" Then
       MsgBox("Please describe the issue you're having Bender, I'm not a mindreader!")
       Exit Sub
     Else
     .......Do a lot of other processing.....
     End if
   End if
 End if

2 个答案:

答案 0 :(得分:0)

如果我正确计数,最后一个如果先关闭那个结果。第一个if没有else块。 else块将紧接在结束之前。

让Visual Studio帮助,缩进。这通常使代码更容易阅读。您也可以将鼠标悬停在if语句上以查看结尾(至少对于c ++和c#,暂时没有使用过VB)

答案 1 :(得分:0)

这看起来不错吗?格式化应该可以帮到你。当您单击If语句的其中一个元素时,将突出显示所有部分以显示它们所属的位置。

If form3.TextBox1.Text = "" Then
    Dim result1 As DialogResult = MessageBox.Show("Click OK to fill out user settings, or CANCEL to do it later", "Settings", MessageBoxButtons.OKCancel)
    If result1 = Windows.Forms.DialogResult.OK Then
        pwauthen.ShowDialog()
    Else
        Exit Sub
    End If
Else
    If TextBox1.Text = "" Then
        MessageBox.Show("Please describe the issue you're having Bender, I'm not a mindreader!")
        Exit Sub
    Else
        '.....Do a lot of other processing.....
    End If
End If