Modifier une ligne d'un ListBox

Résolu/Fermé
Priigame - 6 juil. 2018 à 12:03
 Priigame - 9 juil. 2018 à 11:25
Bonjour à tous,

Je souhaiterais savoir comment faire pour modifier la valeur d'une ligne d'un listbox.

De façon plus concrète, j'ai plusieurs chaines de caractère et je souhaite rajouter un préfix, j'arrive donc à sélectionner la ligne concerner par son index.
Mais je ne vois pas comment faire pour dire:
Préfix + Contenu actuel.

Merci de vos réponses :D
A voir également:

2 réponses

Whismeril Messages postés 19025 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 19 avril 2024 929
6 juil. 2018 à 14:40
Bonjour

si ta liste est bindée sur une source de données (ce qui est souhaitable, puisque C# est axé MVC https://fr.wikipedia.org/wiki/Mod%C3%A8le-Vue-Contr%C3%B4leur ) alors c'est la source de données qu'il faut modifier.

Mais vu comment ta question est posée, je suppose que non.
Donc tu insères à l'index n+1 et tu supprimes l'enregistrement à l'index n.

Voir les méthodes Insert et RemoveAt de Items
https://docs.microsoft.com/fr-fr/dotnet/api/system.windows.forms.listbox.objectcollection?redirectedfrom=MSDN&view=netframework-4.8
0
Bonjour Whismeril,

C'est une petite listbox, et j'avoue ne pas être à l'aise en programmation...
Donc le seul moyen serait donc de récupérer l'index, insérer la nouvelle ligne et supprimer la ligne l'ancienne ?
Dans ce cas, c'est possible de récupérer le contenu de l'enregistrement dans un string temporaire ? J'ai effectuer quelque test pas très fructueux :/

En tout cas merci de ta réponse.
0
Pinzou76 Messages postés 609 Date d'inscription dimanche 17 septembre 2017 Statut Membre Dernière intervention 25 février 2019 190
Modifié le 9 juil. 2018 à 09:49
Bonjour,
Pas besoin d'insérer et supprimer, tu peux directement modifier ta string.
Une fois que tu as récupéré ta string, ajoute le préfixe devant à l'aide de l'opérateur + de cette manière:
stringContenu = stringPréfixe + stringContenu

Ou bien en écrivant directement le préfixe:
stringContenu = "Mon Préfixe" + stringContenu

Cela ajoutera le préfixe au début de la chaîne, avant le contenu.
0
Bonjour,
Le problème c'est qu'actuellement le contenu est dans une listbox et que je n'arrive pas à le récupérer pour le mettre dans un String.
En faisant cela, il me faudrait également une solution pour faire un replace Index en gros, afin d'actualiser mon enregistrement à tel Index.
Merci de ta réponse
0
Pinzou76 Messages postés 609 Date d'inscription dimanche 17 septembre 2017 Statut Membre Dernière intervention 25 février 2019 190
Modifié le 9 juil. 2018 à 10:41
Je ne connais pas la syntaxe exacte en C#, mais en VB.NET (très similaire au C#), la syntaxe serait la suivante:

maListe.Items(monIndex) = "monPréfixe" + maListe.Items(monIndex)

Attention, si le contenu de maListe à l'index monIndex n'est pas une string, ça entraînera un message d'erreur.
0
Merci de ta réponse, je vais essayer de trouver la bonne syntaxe.
En gardant exactement la même, Items est souligner avec pour message "Impossible d'utiliser un membre "ListBox.Items" ne pouvant pas être appelé comme une méthode.
0
Pinzou76 Messages postés 609 Date d'inscription dimanche 17 septembre 2017 Statut Membre Dernière intervention 25 février 2019 190
9 juil. 2018 à 11:13
Il me semble qu'en C# ce sont des crochets [ ] à la place des parenthèses pour spécifier l'index.
0