VB.net Logic没有给出预期的输出

时间:2017-11-15 05:53:04

标签: vb.net

当我在项目中添加此代码时,逻辑不会给出预期的输出

If e.KeyCode = Keys.Enter And cbmPassportCountry.Text.Trim() <> "" Then
    SendKeys.Send("{tab}")
Else
    If btnSave.Enabled = True Then
        btnSave.Focus()
    End If
End If

如果我使用这个逻辑,那么我的代码会给出预期的输出

Private Sub cbmPassportCountry_KeyDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles cbmPassportCountry.KeyDown
    'If e.KeyCode = Keys.Enter And cbmPassportCountry.Text.Trim() <> "" Then
    If e.KeyCode = Keys.Enter Then
        If btnSave.Enabled = True Then
            btnSave.Focus()
        Else
            SendKeys.Send("{tab}")
        End If
    End If
End Sub

但我想在我的代码中实现And逻辑,它将像我的下一个逻辑

一样工作

1 个答案:

答案 0 :(得分:2)

如果您希望第一个块像第二个块一样工作,但检查cbmPassportCountry.Text是否为空,为什么不将它添加到第二个语句中?

If e.KeyCode = Keys.Enter AndAlso cbmPassportCountry.Text.Trim() <> "" Then
    If btnSave.Enabled = True Then
        btnSave.Focus()
    Else
        SendKeys.Send("{tab}")
    End If
End If

你不能把它放在一个If - 声明 ,不用 进行额外的,不必要的检查。