2011-12-14 28 views
0

我在列表視圖中有n個項目,如果我選中複選框,所有其他複選框應自動刪除。如何檢查列表視圖中唯一的一個複選框

代碼

Dim count, idx As Integer 
    count = 0 
    For idx = 1 To lvwMedia.ListItems.count 
     If lvwMedia.ListItems(idx).Checked Then 
      lvwMedia.ListItems(idx).Checked = False 
     End If 
    Next 

上面的代碼是否正常工作,但在此情況下,我必須寫上面的代碼。

+0

你前面的問題的可能重複[如何選擇列表視圖只是一個項目(http://stackoverflow.com/questions/8471295/how-to-select-just-one-item-from-listview ) – Deanna 2011-12-14 09:30:02

回答

1

ItemCheck事件就是你在找的東西。這是適當的代碼。

Private Sub lvwMedia_ItemCheck(ByVal Item As MSComctlLib.ListItem) 
    Dim count, idx As Integer 
    Dim bln As Boolean 

    bln = lvwMedia.ListItems(Item.Index).Checked 

    count = 0 
    For idx = 1 To lvwMedia.ListItems.count 
     If lvwMedia.ListItems(idx).Checked Then 
      lvwMedia.ListItems(idx).Checked = False 
     End If 
    Next 

    lvwMedia.ListItems(Item.Index).Checked = bln 
End Sub 
1

我已經使用VB6已經有一段時間了,但也許嘗試ItemCheck事件。

編輯 - 另外,關於你的算法,我建議不要使用循環來取消所有的檢查。相反,當ItemCheck事件觸發時,記錄所選的當前項目並取消選中所選的最後一個項目。這樣,而不是循環所有的東西,每次你不必循環任何東西,這是更快。

相關問題