VB.NET PictureBox显示了错误的图像



我正在尝试用PictureBox上显示的图像集来显示设备的电池百分比。这是我的代码(我把它放在计时器上(

`

Dim psBattery As PowerStatus = SystemInformation.PowerStatus
Dim perFull As Single = psBattery.BatteryLifePercent
Dim perFull2 As Single = perFull * 100
If psBattery.PowerLineStatus = PowerLineStatus.Online Then
If perFull2 > 96 Then
PBBatt.Image = My.Resources._100p
ElseIf 76 < perFull2 < 95 Then
PBBatt.Image = My.Resources._87p
ElseIf 51 < perFull2 < 76 Then
PBBatt.Image = My.Resources._75p
ElseIf 38 < perFull2 < 51 Then
PBBatt.Image = My.Resources._50p
ElseIf 27 < perFull2 < 38 Then
PBBatt.Image = My.Resources._37p
ElseIf perFull2 < 26 Then
PBBatt.Image = My.Resources._25p
End If
ElseIf psBattery.PowerLineStatus = PowerLineStatus.Offline Then
If perFull2 > 96 Then
PBBatt.Image = My.Resources._100up
ElseIf 76 < perFull2 < 95 Then
PBBatt.Image = My.Resources._87up
ElseIf 51 < perFull2 < 76 Then
PBBatt.Image = My.Resources._75up
ElseIf 38 < perFull2 < 51 Then
PBBatt.Image = My.Resources._50up
ElseIf 27 < perFull2 < 38 Then
PBBatt.Image = My.Resources._37up
ElseIf perFull2 < 26 Then
PBBatt.Image = My.Resources._25up
End If
End If

`

我遇到的问题是,当我的电池百分比>96和<26,除此之外,它显示_87up/87p

我试着使用OR运算符(所以我把76 < perFull2 < 95改为perFull2 > 76 OR perFull2 < 95,把perFullperFull2的类型改为Integer,但它不起作用,结果仍然和以前的代码一样

那么,我该如何缓解这个问题呢?

您需要使用CSng将数字强制转换为single。此外,您不需要为您的条件提供范围,请参阅以下代码。

Dim x As Single = 88
If psBattery.PowerLineStatus = PowerLineStatus.Online Then
If x > CSng(96) Then
MessageBox.Show("96")
ElseIf perFull2 > CSng(76) Then
MessageBox.Show("76")
ElseIf perFull2 > CSng(51) Then
MessageBox.Show("51")
ElseIf perFull2 > CSng(38) Then
MessageBox.Show("38")
ElseIf perFull2 > CSng(27) Then
MessageBox.Show("27")
Else
MessageBox.Show("26")
End If
End If

最新更新