0

我怎样才能把一个If里面另一个If?这是我的代码:

        If IsProcessRunning("javaw") = True Then

        Dim result = MessageBox.Show("message", "caption", MessageBoxButtons.OKCancel)
        If (result = DialogResult.Cancel) Then
            MessageBox.Show("Cancel pressed")
        ElseIf (result = DialogResult.OK) Then
            MessageBox.Show("Ok pressed")

        End If

这给了我错误:我应该放在End If后面if IsProcessRunning()。但这将取消第一条If语句,如果IsProcessRunningisTrue或将显示消息框False

我怎样才能解决这个问题?提前致谢。

4

3 回答 3

5

你刚刚错过了第二个End If,你不必把它放在 Visual Studio 告诉你的地方,你只需要确保它在那里:

If IsProcessRunning("javaw") = True Then

    Dim result = MessageBox.Show("message", "caption", MessageBoxButtons.OKCancel)
    If (result = DialogResult.Cancel) Then
        MessageBox.Show("Cancel pressed")
    ElseIf (result = DialogResult.OK) Then
        MessageBox.Show("Ok pressed")

    End If

End If
于 2013-01-21T09:34:55.440 回答
1
If IsProcessRunning("javaw") = True Then
    Dim result = MessageBox.Show("message", "caption", MessageBoxButtons.OKCancel)
    If (result = DialogResult.Cancel) Then
        MessageBox.Show("Cancel pressed")
    ElseIf (result = DialogResult.OK) Then
        MessageBox.Show("Ok pressed")
    End If
End If
于 2013-01-21T09:36:14.840 回答
0

如其他语句所示,可以嵌套If语句,即

If IsProcessRunning("javaw") 那么
    ...
    如果(结果 = DialogResult.Cancel)那么
        ……
    万一
万一

但是,根据您的代码和情况,您最终可能会得到一个“先锋”:如果您想在检查了许多“进入条件”为真之后运行您的“真实”代码,您可以编写:

子你的子()
    如果 cond1 则
        如果 cond2 则
            如果 cond3 则
                如果 cond4 则
                    '“真实代码”:
                    你的代码在这里
                万一
            万一
        万一
    万一
结束子

由于这可能会变得非常混乱,因此建议改为反转检查,即:

子你的子()
    '进入条件
    If Not cond1 Then Exit Sub
    If Not cond2 Then Exit Sub
    If Not cond3 Then Exit Sub
    If Not cond4 Then Exit Sub

    '“真实”代码
    你的代码在这里
结束子
于 2013-01-21T13:15:31.730 回答