Accéder à un RichTextBox [Résolu]

Signaler
Messages postés
9
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
14 février 2005
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
Bonjour,

Voila, dans mon programme, quand j'appuie sur un
bouton, je crée un nouveau RichTextBox que j'affiche et je n'arrive pas
ensuite à y accéder car une fois sorti de la fonction (celle qui
s'exécute quand je clique sur le bouton), le nom du RichTextBox n'est
bien sûr plus accessible.

Pourraît-on, par exemple, créer une sorte de tableau où l'on pourraît conserver les RichTextBox créés.



Merci et que le pingouin soit avec vous!

3 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
oui
si tu connais le nombre maxi de RTB que tu utiliseras tu peux utiliser un tableau (en tant que membre de la classe, pas local à la méthode sinon il subira le même sort que ton RTB)
sinon tu peux utiliser une classe de collections type ArrayList, tu auras juste à caster l'object en RichTextBox à la lecture dans la collection (même remarque que pour le tableau : en tant que membre de la classe, pas en local)

Cocoricoooooooo !!!!
coq
MVP Visual C#
Messages postés
9
Date d'inscription
samedi 3 juillet 2004
Statut
Membre
Dernière intervention
14 février 2005

Cela faisait longtemps que je cherchais comment faire. Pour ceux que cela intéresse voila comment procéder:



// Créer une liste en dehors d'une méthode qui va contenir les RTF

ArrayList tab = new ArrayList();



// Voici une fonction qui crée un nouveau RTF

void CreerRTF()
{
RichTextBox rtf = new System.Windows.Forms.RichTextBox();

// Paramêtres par défaut de rtf à changer comme Size, Dock...

// Ci-dessous, on insère le RTF créé dans tab

tab.Add(rtf);
}



// Méthode qui accède à tous les RTF de tab

void AccesRTF()

{

IEnumerator enum = tab.GetEnumerator();

// Enumération de tous les RTF de tab

while (enum.MoveNext())

{

// On créé un RTF provisoire

RichTextBox temp;

// Il faut convertir (caster) l'objet de enum en RTF

temp = (RichTextBox) enum.Current;

// Changement à faire

}

}
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
85
ou :
void AccesRTF()
{
foreach ( RichTextBox temp in tab)
{
// Changement à faire
}
}

:-)

Cocoricoooooooo !!!!
coq
MVP Visual C#