Appeler une ListBox dans n'importe qu'elle class

Cisaks Messages postés 65 Date d'inscription mercredi 26 mai 2004 Statut Membre Dernière intervention 25 mars 2010 - 25 mars 2010 à 10:05
balthapadawan Messages postés 5 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 7 juin 2011 - 28 juil. 2010 à 17:55
BOnjour,

J'ai une listbox dans ma fenetre principal et j'aimerai pouvoir la mettre à jour dans n'importe qu'elle autre class sans pour autant devoir la passer en parametre dans chaque class.... Le top du top serai aussi de pouvoir l'appeler meme si une des class est threadée.
Y a t'il un moyen?

Merci :)

5 réponses

cs_louis14 Messages postés 793 Date d'inscription mardi 8 juillet 2003 Statut Membre Dernière intervention 10 février 2021 8
25 mars 2010 à 13:24
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
25 mars 2010 à 14:33
Salut

Tu peux mettre ton objet en statique (donc objet dépendant de la classe et non de l'instance) et public pour y avoir accès depuis n'importe quel endroit. Cependant, attention aux accès concurrents en cas de multithread.

En gros, dans ta classe dans laquelle se trouve ta form :

private static ListBox _maListBox;
private static readonly object _maListBoxThreadSafe = new object();

public static ListBox MaListBox
{
    get
    {
        lock(_maListBoxThreadSafe)
        {
            return _maListBox;
        }
    }
}

public Form1()
{
    InitializeComponents();
    Form1._maListBox = maListBox;
}



puis, à n'importe quel endroit où tu veux accéder à ta listbox :
Form1.MaListBox.Items.Add("blablabla");


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
balthapadawan Messages postés 5 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 7 juin 2011
28 juil. 2010 à 11:58
bonjour,

une question de newbies:

comment on fait pour passer une listBox en parametre?
J'ai essayé en utilisant les references mais je dois mal m'y prendre, je debarque totalement en c#

merci beaucoup
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
28 juil. 2010 à 14:34
@balthapadawan :
C'est très simple : ListBox est une classe. Elle est donc forcément transmise par référence. Donc elle se passe de la manière la plus simple qui soit :

maMethode(maListBox);

public void maMethode(ListBox maListBox)
{
    //...
}


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
balthapadawan Messages postés 5 Date d'inscription lundi 8 septembre 2008 Statut Membre Dernière intervention 7 juin 2011
28 juil. 2010 à 17:55
Nickel!!!

Du coup je viens de mieux comprendre et utiliser ton code précédent et tout fonctionne bien...

merci pour ta réponse rapide et concise, krimog, et désolé pour la question très bateau...
0
Rejoignez-nous