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

VB.NET中PictureBox电池百分比对应图片显示异常的问题解决咨询

解决VB.NET中电池百分比图片匹配异常的问题

我一眼就看到问题出在你的条件判断逻辑上,这是VB.NET里很容易踩的坑,咱们一步步来解决:

核心问题分析

  1. 错误的比较语法:VB.NET不支持像76 < perFull2 < 95这种链式比较写法。它会先计算76 < perFull2得到一个布尔值(True对应-1、False对应0),再用这个结果和95比较,这完全不是你想要的区间判断逻辑。
  2. 误用逻辑运算符:你改成perFull2 > 76 OR perFull2 < 95也不对——OR表示满足其中一个条件就成立,这等于所有数值都符合这个条件(因为任何数要么大于76要么小于95),所以会直接匹配第一个符合OR条件的分支,也就是_87p/_87up,这就是为什么中间区间都显示这张图。
  3. 区间边界遗漏:你的条件里没有包含95、76、51这些临界值,导致这些百分比会落到错误的分支里。

修正后的代码

把你的Timer代码替换成下面这段,我调整了比较逻辑,用更清晰的Select Case结构,同时补全了所有边界值:

Dim psBattery As PowerStatus = SystemInformation.PowerStatus
Dim perFull2 As Integer = CInt(psBattery.BatteryLifePercent * 100) '直接转整数,避免浮点数精度问题

If psBattery.PowerLineStatus = PowerLineStatus.Online Then
    Select Case perFull2
        Case > 96
            PBBatt.Image = My.Resources._100p
        Case 77 To 96 '覆盖77到96的所有百分比
            PBBatt.Image = My.Resources._87p
        Case 52 To 76
            PBBatt.Image = My.Resources._75p
        Case 39 To 51
            PBBatt.Image = My.Resources._50p
        Case 28 To 38
            PBBatt.Image = My.Resources._37p
        Case <= 27
            PBBatt.Image = My.Resources._25p
    End Select
ElseIf psBattery.PowerLineStatus = PowerLineStatus.Offline Then
    Select Case perFull2
        Case > 96
            PBBatt.Image = My.Resources._100up
        Case 77 To 96
            PBBatt.Image = My.Resources._87up
        Case 52 To 76
            PBBatt.Image = My.Resources._75up
        Case 39 To 51
            PBBatt.Image = My.Resources._50up
        Case 28 To 38
            PBBatt.Image = My.Resources._37up
        Case <= 27
            PBBatt.Image = My.Resources._25up
    End Select
End If

关键优化点说明

  • 用Select Case替代多层If-Else,代码结构更清晰,也不容易出现逻辑漏洞。
  • 将perFull2直接转为整数,避免浮点数比较时的精度误差干扰判断。
  • 明确每个区间的范围(比如77 To 96),确保所有百分比值都能匹配到对应的分支,没有遗漏临界值。

额外测试建议

你可以手动给perFull2赋值不同的数值(比如95、76、51)来测试每个分支是否正常触发,确保所有区间都能正确显示对应的图片。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.27 13:57:35