IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Windows Forms Discussion :

Comment modifier un contrôle depuis une classe ?


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Profil pro
    Développeur
    Inscrit en
    Avril 2007
    Messages
    52
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Avril 2007
    Messages : 52
    Points : 58
    Points
    58
    Par défaut Comment modifier un contrôle depuis une classe ?
    Bonjour à tous,

    Cette question va certainement vous paraître idiote, mais j'aurais aimé savoir comment faire pour ajouter des items à une listbox depuis une classe ?

    J'ai un Form1 qui contient un bouton et une listbox. En cliquant sur le bouton, j'exécute un Thread qui exécute une fonction qui parcours le disque dur.
    A chaque fichier trouvé, deux actions sont effectuées :
    - ajout d'une structure comportant quelques données du fichier (comme son nom, sa taille, etc.) dans une liste générique
    - ajout de cette structure dans la listbox de Form1

    Et c'est donc pour cette 2ème action que j'ai un peu de mal... Form1.listbox.Add(maStructure) , je n'arrive pas à accéder à la listbox !

    Sauriez-vous comment procéder ? Sachant qu'il va très certainement falloir que je fasse appel à un délégué pour insérer des données dans ma listbox depuis un autre Thread que celui qui l'a créé.

    Merci d'avance,
    Lionel.

  2. #2
    Membre confirmé Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Points : 513
    Points
    513
    Par défaut
    Salut,
    quel est le problème exactement ? Dans l'intellisense listBox1 n'apparaît pas ?
    Si tel est le cas tu dois mettre la visibilité de listBox1 en public (ou internal si tu es dans le même namespace) pour y avoir accès depuis une autre instance d'objet que Form1.

  3. #3
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Si l'accès a lieu depuis un thread différent du thread IG (ce qui semble être le cas), il faut passer par des Invoke.

    Il faut également dans le thread une référence au ListBox. Le mieux est d'utiliser un Thread que tu démarres avec un ParameterizedThreadStart et tu utilises obj pour passer la référence au ListBox.

Discussions similaires

  1. Comment modifier les champs d'une classe depuis une autre
    Par SuperJoker dans le forum Débuter avec Java
    Réponses: 9
    Dernier message: 19/06/2014, 11h28
  2. Réponses: 3
    Dernier message: 09/02/2011, 15h40
  3. Réponses: 4
    Dernier message: 12/03/2008, 13h18
  4. Réponses: 10
    Dernier message: 22/08/2007, 18h07
  5. Réponses: 5
    Dernier message: 23/05/2006, 15h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo