如何设置检查列表框中的项目?
How to set items check in checklistbox?
我使用 SetItemChecked 方法来自动检查清单框,但它不起作用。有人看过我的代码,请给出解决方案吗?
Private Sub Check(value As Double)
If 0 <= value < 20 Then
Me.CheckedListBox1.SetItemChecked(0, True)
ElseIf 20 <= value < 40 Then
Me.CheckedListBox1.SetItemChecked(1, True)
ElseIf 40 <= value < 60 Then
Me.CheckedListBox1.SetItemChecked(2, True)
ElseIf 60 <= value < 80 Then
Me.CheckedListBox1.SetItemChecked(3, True)
Else
Me.CheckedListBox1.SetItemChecked(4, True)
End If
End Sub
然后我调用 check(60),它 returns 第一项检查。错了吗?
您需要更正您的条件,如下所示也清除
Private Sub Check(value As Double)
Me.CheckedListBox1.ClearSelected()
If 0 <= value And value < 20 Then
Me.CheckedListBox1.SetItemChecked(0, True)
ElseIf 20 <= value And value < 40 Then
Me.CheckedListBox1.SetItemChecked(1, True)
ElseIf 40 <= value And value < 60 Then
Me.CheckedListBox1.SetItemChecked(2, True)
ElseIf 60 <= value And value< 80 Then
Me.CheckedListBox1.SetItemChecked(3, True)
Else
Me.CheckedListBox1.SetItemChecked(4, True)
End If
End Sub
第一个 If
语句的计算结果总是 True
。
因为True
转换为1
而False
转换为0
.
再往下看就清楚了:
If (0 <= value) < 20 Then
所以无论value
中包含哪个数字,条件都是...
True < 20
..或者...
False < 20
有关详细信息,请参阅此处:Convert Boolean to Integer in VB.NET
所以你需要改变如下条件:
If 0 <= value And value < 20 Then ...
我使用 SetItemChecked 方法来自动检查清单框,但它不起作用。有人看过我的代码,请给出解决方案吗?
Private Sub Check(value As Double)
If 0 <= value < 20 Then
Me.CheckedListBox1.SetItemChecked(0, True)
ElseIf 20 <= value < 40 Then
Me.CheckedListBox1.SetItemChecked(1, True)
ElseIf 40 <= value < 60 Then
Me.CheckedListBox1.SetItemChecked(2, True)
ElseIf 60 <= value < 80 Then
Me.CheckedListBox1.SetItemChecked(3, True)
Else
Me.CheckedListBox1.SetItemChecked(4, True)
End If
End Sub
然后我调用 check(60),它 returns 第一项检查。错了吗?
您需要更正您的条件,如下所示也清除
Private Sub Check(value As Double)
Me.CheckedListBox1.ClearSelected()
If 0 <= value And value < 20 Then
Me.CheckedListBox1.SetItemChecked(0, True)
ElseIf 20 <= value And value < 40 Then
Me.CheckedListBox1.SetItemChecked(1, True)
ElseIf 40 <= value And value < 60 Then
Me.CheckedListBox1.SetItemChecked(2, True)
ElseIf 60 <= value And value< 80 Then
Me.CheckedListBox1.SetItemChecked(3, True)
Else
Me.CheckedListBox1.SetItemChecked(4, True)
End If
End Sub
第一个 If
语句的计算结果总是 True
。
因为True
转换为1
而False
转换为0
.
再往下看就清楚了:
If (0 <= value) < 20 Then
所以无论value
中包含哪个数字,条件都是...
True < 20
..或者...False < 20
有关详细信息,请参阅此处:Convert Boolean to Integer in VB.NET
所以你需要改变如下条件:
If 0 <= value And value < 20 Then ...