[VB 6] Changer l'index d'une ListBox

Fermé
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 - 15 juil. 2005 à 16:05
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 - 30 juil. 2005 à 22:41
Bonjour,

Mon problème est que j'essaie de changer par le code l'index d'une ListBox appartenant à un groupe de contrôles. J'ai essayé avec la propriété ".Index", avec ".NewIndex" mais dans tous les cas, j'ai ce message qui apparait :

"Can't assign to read-only property"

J'en déduis que je ne peux pas le modifier... quelqu'un saurait-il si je peux le modifier et si oui, comment ?

Merci d'avance
A voir également:

4 réponses

Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
15 juil. 2005 à 17:08
Ce que je veux faire, c'est changer l'index de la liste

j'ai des contrôles : frame, labels, picturebox, etc qui sont tous des groupes de contrôles avec l'index 0

En dessous, j'ai ces mêmes contrôles avec l'index 1, et ainsi de suite.

Je veux pouvoir echanger les valeurs des contrôles (par exemple, mettre les valeurs des contrôles d'index 0 dans les contrôles d'index 1 et inversement). Ca j'y arrive sans problème.

Mon problème, c'est que je me sert de l'index pour l'ordre de mes contrôles : le 0 doit être en haut, le 1 juste en dessous, le 2 encore en dessous,...

Pour faire cela, je dois donc echanger les index également : le contrôle d'index 0 a maintenant l'index 0 et inversement.

Voilà, j'espère que j'ai été clair, n'hésitez pas à me poser des questions sur ce qui est encore flou dans mes explications, merci pour votre aide.
1
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
15 juil. 2005 à 20:40
Petite erreur de frappe : "le contrôle d'index 0 a maintenant l'index 1 et inversement."
0
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
19 juil. 2005 à 11:07
Je vais simplifier le problème...

Admettons que j'ai 3 labels qui sont des groupes de contrôles. Ils ont donc l'index 0, 1 et 2.

Dans le .Caption de ces labels, j'ai respectivement "A", "B" et "C".

Maintenant, lorsque je clique sur un CommandButton par exemple, le "A" et le "B" s'inversent comme si je décidais que, à partir de maintenant, c'est le "B" la première lettre de l'alphabet.

Je me sers donc de l'index de mes contrôles pour dire laquelle est la première lettre, laquelle est la seconde, ...

Je veux que le "A", qui était à l'index 0, deviennent index 1 et que le "B" qui avait un index de 1 ait maintenant un index égal à 0. C'est à ce moment que j'ai un problème : je n'arrive pas à changer l'index...
0
RicHamilton Messages postés 49 Date d'inscription jeudi 10 mars 2005 Statut Membre Dernière intervention 18 juillet 2006
15 juil. 2005 à 16:50
Salut toi!

Explique-nous ce ke tu as réellement l'intention de faire.

Merci
0
med_ali Messages postés 35 Date d'inscription vendredi 30 juillet 2004 Statut Membre Dernière intervention 3 décembre 2007 7
19 juil. 2005 à 19:22
le message qui vous apparait indique que l'index d'un contrôle est en lecture seule . c'est à dire vous ne pouvez pas les modifier.
pour résoudre votre problème vous pouvez en servire d'une variable qui jout l'intermédière entre ces trois labels.je vais vous donné un exemple:

dim Var as string
var=label(1)
label(1) = label(0)
label(0)=Var

j'espère que j'ai bien compri votre problème
0
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
24 juil. 2005 à 15:01
Oui, c'est ce que j'ai fais (utiliser une variable) mais c'est un petit peu plus compliqué que ça.

Une fois que j'ai inversé les 2 lettres comme vous l'avez fait, j'ai donc : le label(0) avec la lettre "B" et le label(1) avec la lettre "A". De ce côté tout va bien.

Reste un problème (que j'ai oublié dans mon explication, désolé ^^).

Une ListBox est associée à chaque label, admettons qu'il s'agisse de personnes, l'une s'appelle "A", l'autre "B". Et la liste qui lui est associée comprend des informations sur la personne concernée.

Au départ, on a donc :
lblpers(0).Caption = "A" et Listpers(0) contient les informations de A

lblpers(1).Caption = "B" et Listpers(1) contient les informations de B

Après l'échange des 2 lettres, on a :
lblpers(0).Caption = "B" et Listpers(0) contient les informations de A

lblpers(1).Caption = "A" et Listpers(1) contient les informations de B

Les informations ne correspondent plus au label, et afin d'éviter d'échanger les valeurs des listes, il serait plus simple d'échanger leur index, ce qui donnerait :

lblpers(0).Caption = "B" et Listpers(0) contient les informations de B

lblpers(1).Caption = "B" et Listpers(1) contient les informations de A

Voilà le résultat que j'attends.

Merci encore pour vos précédentes et vos futures réponses ;)
0
salam je sius un nouveau et je veux savoire comment ce fait les code de vb6 et la traduction de lalgorithme en code vb6 svp je veux des reponce et des explication......
0
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
25 juil. 2005 à 13:19
Salut, regarde déjà ça, je pense que ça devrait t'aider :

http://www.commentcamarche.net/faq/index.php3?cat=88
0
Kaze_no_i-guru Messages postés 63 Date d'inscription vendredi 25 février 2005 Statut Membre Dernière intervention 15 avril 2010 28
30 juil. 2005 à 22:41
up
0