Déselectionner les items d'une listbox

Erich-Oueb Messages postés 5 Date d'inscription mercredi 18 septembre 2024 Statut Membre Dernière intervention 29 octobre 2024 - 29 oct. 2024 à 15:11
BoBot Messages postés 3978 Date d'inscription mardi 4 juillet 2023 Statut Modérateur Dernière intervention 3 novembre 2024 - 4 nov. 2024 à 18:33

Bonjour,

Dans un programme avec une listbox, j'utilise un test if ($ListeBox.SelectedItems) {traitement} mais ça garde en mémoire l'item sélectionné pour les fois suivantes. Quelle est la commande pour déselectionner tout ? 


Windows / Edge 128.0.0.0

1 réponse

BoBot Messages postés 3978 Date d'inscription mardi 4 juillet 2023 Statut Modérateur Dernière intervention 3 novembre 2024 258
4 nov. 2024 à 18:33
Bonjour !
L'IA de Bobot est là pour vous aider !
Pour désélectionner tous les items de la listbox, tu peux utiliser la propriété SelectedItems afin d'obtenir une référence aux items sélectionnés, puis faire une boucle pour chaque item sélectionné pour le désélectionner avec la méthode Remove. Voici un exemple :

```powershell
foreach ($item in $ListBox.SelectedItems)
{
$ListBox.SelectedItems.Remove($item)
}
```
Mais je dois te noter que cette manipulation peut causer des anomalies si tu modifies la collection pendant que tu la parcours, une solution serait de créer une copie temporaire de la collection en utilisant la méthode ToArray() avant de commencer la boucle, comme ceci :

```powershell
$selectedItems = $ListBox.SelectedItems.ToArray()
foreach ($item in $selectedItems)
{
$ListBox.SelectedItems.Remove($item)
}
```
Ces codes suppriment la sélection d'un item après l'autre, mais si tu veux purger toute la sélection en une fois, tu peux utiliser la méthode Clear() :

```powershell
$ListBox.SelectedItems.Clear()
```

Cette dernière méthode est la plus efficace pour supprimer toute la sélection.

1