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

VB.NET Select Case仅前两个分支生效问题求助

问题分析与修复方案

你的代码核心问题出在Select Case的条件写法错误:每个Case里的逗号代表逻辑“或”,而非你预期的区间范围。比如第二个分支Case Is >= 51, Is < 500,实际逻辑是“只要数值≥51 或者 <500就匹配”——所有≥51的数值都会触发这个分支,后续分支永远没机会执行。

修正步骤

  1. 使用To关键字定义连续数值区间,这是VB.NET中Select Case指定范围的标准方式;
  2. 合并两个独立的Select Case逻辑,减少冗余代码;
  3. 简化按钮启用状态的判断逻辑,让代码更简洁。

修正后的完整代码

Public Class Form1
    Private Sub Exit_Btn_Click(sender As Object, e As EventArgs) Handles AhhFreeAtLastOhGabrielNowDawnsThyReckoningAndThyGoreShallGlistinForTheTemplesOfManCreatureOfSteelMyGratitudeUponTheeForrMyFreedomButTheCrimesThatThyKindHaveCommitedAgienstHumanityAreNotForgottenAndThyPunishmentIsExiting_Btn.Click
        End
    End Sub

    Private Sub Followers_Txt_TextChanged(sender As Object, e As EventArgs) Handles Followers_Txt.TextChanged
        Dim F As Integer
        Dim FollowersOk = Integer.TryParse(Followers_Txt.Text, F)
        
        ' 简化按钮启用逻辑
        Conferm_Btn.Enabled = FollowersOk
        If Not FollowersOk Then
            Followers_Txt.Text = ""
            ' 解析失败时重置显示内容
            Celebrity_Pic.Image = Nothing
            Celebrity_Lbl.Text = ""
            Return
        End If

        ' 合并图片与文本的Select Case逻辑
        Select Case F
            Case < 50
                Celebrity_Pic.Image = My.Resources.stupid_idiot
                Celebrity_Lbl.Text = "Elon"
            Case 51 To 499
                Celebrity_Pic.Image = My.Resources.dream
                Celebrity_Lbl.Text = "Clay"
            Case 501 To 9999
                Celebrity_Pic.Image = My.Resources.Doug_Bowser
                Celebrity_Lbl.Text = "Doug Bowser"
            Case 10001 To 499999
                Celebrity_Pic.Image = My.Resources.mathew_patrick
                Celebrity_Lbl.Text = "Mathew Patrick"
            Case >= 500001
                Celebrity_Pic.Image = My.Resources.Mark_anthony
                Celebrity_Lbl.Text = "Mark Edward Fischbach"
        End Select
    End Sub
End Class

关键修改说明

  • 将Case Is >= 51, Is < 500改为Case 51 To 499,明确指定连续数值区间;
  • 合并两个Select Case,避免重复的条件判断;
  • 解析失败时添加重置显示内容的逻辑,优化用户体验;
  • 直接用FollowersOk的布尔值赋值给Conferm_Btn.Enabled,简化判断逻辑。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.11 14:54:52