TabIndex=Index ? Question par rapport au RemoveAt

Résolu
PeTeRsLaStAr Messages postés 158 Date d'inscription samedi 22 juin 2002 Statut Membre Dernière intervention 27 juin 2015 - 5 déc. 2005 à 10:47
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 - 5 déc. 2005 à 12:09
Bonjour.
Suite de mes pbs à la chaine :)

Par rapport à ma dernière question d'hier...
J'ai réussi à générer de manière automatique mes boutons... Ok. Maintenant, j'aimerais bien les retirer un par un pour pouvoir en afficher des nouveaux.

J'ai regardé du coté de l'évenement
This.Controls.Remove()
le souci est que je ne vois pas quoi mettre dans les parenthèses... Il faut mettre un System.Control. SOIT. Mais lorsque je cast le nom de mon control que je veux retirer en System.Control il me marque que le cast est invalide...


Controls.Remove((Control)((
object)(arrayNoReponses[i])));

(oui j'ai mes Names sont stockées dans un tableau de int...)

J'ai regardé également du coté du RemoveAt() qui cette fois ci prend un int en entrée, équivalent à l'index de l'élément.
Mais je ne vois nulle part ou obtenir cet index... (j'imagine que Index est différent de TabIndex ???)

Quelqu'un pourrait il éclairer ma lanterne ?
Coq peut être ? ^^

****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher

4 réponses

sebmafate Messages postés 4936 Date d'inscription lundi 17 février 2003 Statut Membre Dernière intervention 14 février 2014 37
5 déc. 2005 à 11:00
euh... je ne comprends pas pourquoi tu stockes le nom de ton controle dans un tableau, lorsqu'il suffit de stocker le controle lui-même dans une ArrayList...

c'est quand même beaucoup plus simple.

Sébastien FERRAND
[MVP C#]
3
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
5 déc. 2005 à 11:07
Hello,

Mets tes controls dans une Hashtable, ou un Dictionnary si tu es en .Net 2.0.

Un exemple :

// Dans la classe
Dictionnary ControlsDict = new Dictionnary

//Dans la méthode ou tu ajoute les boutons
ControlsDict[i]=YourNewControl;

//Dans la méthode ou tu ôtes les contrôles
Controls.Remove(ControlsDict[i]);
ControlsDict.Remove(i);

Amicalement, SharpMao
0
PeTeRsLaStAr Messages postés 158 Date d'inscription samedi 22 juin 2002 Statut Membre Dernière intervention 27 juin 2015 1
5 déc. 2005 à 11:34
Merci à toi sebmafate et également à toi SharpMao.

J'ai préféré utiliser la solution de sebmafate, car le pb était réglé avant ta solution SharpMao :)

Enfin pour répondre àt a question, pourquoi je n'ai pas utilisé ArrayList, tout simplement car je n'en connaissais pas l'existence...

:) ça marche très bien maintenant, pour ceux que ça intéresse ça donne ça :
Dans mon événement CreateRadio (qui crée donc un RadioButton) je stocke dans MyArrayList mon control


MyArrayList.Add(rbn);

Puis qd je souhaite l'effacer, j'appelle le code suivant :



foreach(Control MyControl
in MyArrayList)


{Controls.Remove(MyControl);}

:)

Voilà, encore merci pour l'astuce...

****************************************************
Il n'y a pas de pb sans solutions : il faut juste trouver le temps pour les chercher
0
SharpMao Messages postés 1024 Date d'inscription mardi 4 février 2003 Statut Membre Dernière intervention 7 juin 2010 69
5 déc. 2005 à 12:09
Pas de problèmes, et puis de toute façon, la solution de sebmafate est meilleure, car tu enlèves tout tes controles en même temps.

Amicalement, SharpMao
0
Rejoignez-nous