2016-07-01 4 views
1

Есть ли кто-нибудь, кто знает, как узнать количество выбранных элементов в ListView с флажками, особенно в VBA?Как узнать количество выбранных флажков/элементов в ListView (VBA)

Мой подход заключается в следующем. Когда я нажимаю на флажок в этом ListView, тогда приложение должно проверить, больше ли выбранных элементов, чем три, а затем вывести сообщение об ошибке.

Private Sub ListView1_ItemCheck(ByVal Item As MSComctlLib.ListItem) 
    If checked items > 3 then 
     //Error message 
    Else 
     //continues 
    End If 
End Sub 

ответ

1

Вам необходимо зациклиться на list items и запросить свойство Checked.

Private Sub ListView1_ItemCheck(ByVal Item As MSComctlLib.ListItem) 
' Returns the number of selected items. 
Dim li As ListItem ' Used to loop over all items. 
Dim c As Integer ' Used to count selected items. 

    ' Loop over each item. 
    For Each li In ListView1.ListItems 

     ' Increase count if selected. 
     If li.Checked = True Then c = c + 1 
    Next 

    ' Inform user. 
    MsgBox c, vbInformation, "Selected Items" 
End Sub 

Редактировать

проверяемое свойство работает только если ваш ListBox использует флажки. Во всех остальных случаях используйте выбранное свойство. От MSDN:

Это свойство полезно, только если свойство CheckBoxes контроля ListView элемент содержится в устанавливается истина. Вы можете использовать это свойство, чтобы определить, был ли элемент проверен пользователем или через код во время выполнения. Чтобы определить все элементы, которые были отмечены в элементе управления ListView, вы можете использовать свойство CheckedItems. Чтобы принять действие , когда элемент был отмечен, вы можете создать обработчик события для свойства ItemCheck элемента управления ListView.

+0

спасибо. Это хорошее решение, и оно работает :) – yuro

Смежные вопросы