簡體   English   中英

如何設置項目簽入復選框?

[英]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)並返回第一項檢查。 這是錯誤的?

您需要更正您的條件,如下所示:

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轉換為1False轉換為0

如果您看一下,這將變得更加清晰:

If (0 <= value) < 20 Then

因此,無論value包含哪個數字,條件都將是...

  • True < 20 ..或...
  • False < 20

有關更多信息,請參見此處: 在VB.NET中將布爾值轉換為整數


因此,您需要更改以下條件:

If 0 <= value And value < 20 Then ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM