You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

VB.NET代码中Or运算符仅判断第一个条件的问题如何解决

问题解决方案

核心问题原因

VB.NET 中的 Or 运算符同时支持逻辑或和按位或运算,存在语义歧义,用于布尔条件判断时容易出现非预期结果。官方推荐布尔值判断时使用专门的短路逻辑或运算符 OrElse,这也是你当前btnDisplay.Enabled = False条件无法生效的核心原因。

调整后代码

Private Sub btnSubmit_Click(sender As Object, e As EventArgs) Handles btnSubmit.Click
    Dim difficulty As Integer '设置difficulty为整数类型
    ' 如需调试可临时取消下一行注释,输出两个控件的实时状态确认是否符合预期
    ' Debug.WriteLine($"txtBack.Visible: {txtBack.Visible}, btnDisplay.Enabled: {btnDisplay.Enabled}")
    ' 将原Or替换为OrElse实现正确的逻辑或判断
    If txtBack.Visible = True OrElse btnDisplay.Enabled = False Then '闪卡背面可见 或 开始按钮已点击
        If Integer.TryParse(TxtDifficulty.Text, difficulty) AndAlso difficulty >= 1 AndAlso difficulty <= 3 Then '校验难度值在1-3之间
            Dim front = txtFront.Text 
            UpdateDifficultyLevel(front, difficulty) '调用更新难度子程序
            MsgBox("难度更新成功") 
        Else 
            MsgBox("请输入1到3之间的整数") 
        End If
    Else 
        MsgBox("请先展示闪卡") 
    End If
End Sub

额外排查建议

如果替换运算符后仍然无法触发btnDisplay.Enabled = False对应分支,可检查两项内容:

  • 确认btnDisplay控件名拼写正确,没有错误引用其他按钮控件
  • 确认在触发btnSubmit点击事件前,没有其他业务逻辑修改了btnDisplay.Enabled的属性,导致判断时属性值已经不是预期的False

内容的提问来源于stack exchange,提问作者Idk

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 23:24:03