Vous pouvez utiliser l'événement ItemCheck
si vous vérifiez également le nouvel état de l'élément sur lequel vous cliquez. Ceci est disponible dans les arguments de l'événement, sous forme de e.NewValue
. Si NewValue
est coché, incluez l'élément actuel avec la collection proprement dite dans votre logique:
private void checkedListBox1_ItemCheck(object sender, ItemCheckEventArgs e)
{
List<string> checkedItems = new List<string>();
foreach (var item in checkedListBox1.CheckedItems)
checkedItems.Add(item.ToString());
if (e.NewValue == CheckState.Checked)
checkedItems.Add(checkedListBox1.Items[e.Index].ToString());
foreach (string item in checkedItems)
{
...
}
}
Autre exemple, pour déterminer si la collection sera vide après que cet élément soit (dés) vérifié:
private void ListProjects_ItemCheck(object sender, ItemCheckEventArgs args)
{
if (ListProjects.CheckedItems.Count == 1 && args.NewValue == CheckState.Unchecked)
// The collection is about to be emptied: there's just one item checked, and it's being unchecked at this moment
...
else
// The collection will not be empty once this click is handled
...
}