我有一个程序,我使用复杂的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
答案 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