Rechercher : dans
Par :

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

Dernière réponse le 30 jui 2005 à 22:41:02 Kaze_no_i-guru, le 15 jui 2005 à 16:05:03 
 Signaler ce message aux modérateurs

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

Meilleures réponses pour « [VB 6] Changer l'index d'une ListBox » dans :
Counter Strike - Modifier les skins des armes VoirVoici comment modifier les skins d'armes pour CS 1.6 Introduction Télécharger les skins Insertion des skins Introduction Les skins d'armes sont des répliques d'armes de bases mais plusieurs aspects changent : La taille La forme La...
Télécharger Visual Basic 6 Runtime (VB6 DLL) VoirLe Runtime Visual Basic 6 contient l'ensemble des librairies (DLL) nécessaires pour exécuter des programmes écrits en langage Visual Basic 6.0. Il contient notamment les DLL suivantes :...

1

RicHamilton, le 15 jui 2005 à 16:50:29

Salut toi!

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

Merci

Répondre à RicHamilton

2

Kaze_no_i-guru, le 15 jui 2005 à 17:08:10

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.

Répondre à Kaze_no_i-guru

3

Kaze_no_i-guru, le 15 jui 2005 à 20:40:41

Petite erreur de frappe : "le contrôle d'index 0 a maintenant l'index 1 et inversement."

Répondre à Kaze_no_i-guru

4

Kaze_no_i-guru, le 19 jui 2005 à 11:07:47

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...

Répondre à Kaze_no_i-guru

5

med_ali, le 19 jui 2005 à 19:22:03

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

Répondre à med_ali

6

Kaze_no_i-guru, le 24 jui 2005 à 15:01:17

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 ;)

Répondre à Kaze_no_i-guru

7

pascal, le 25 jui 2005 à 11:23:13

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......

Répondre à pascal

8

Kaze_no_i-guru, le 25 jui 2005 à 13:19:39

Salut, regarde déjà ça, je pense que ça devrait t'aider :

http://www.commentcamarche.net/faq/index.php3?cat=88

Répondre à Kaze_no_i-guru

9

 Kaze_no_i-guru, le 30 jui 2005 à 22:41:02

Up

Répondre à Kaze_no_i-guru