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 :

Création dynamique control à partir d'une string


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Par défaut Création dynamique control à partir d'une string
    Bonjour a tous,

    Je voudrais créer des controls (TextBox, CheckBox, Button ...) à partir de string, les noms des controles sont stockés dans une ArrayList elle même remplit depuis un fichier.
    j'ai trouvée des infos ici et ici mais rien à faire !!!

    Je n'arrive ni à récupérer l'assembly de System.Windows.Forms.Controle ni à obtenir autre chose que null de la méthode GetType.

    Pourtant cela semble possible ...

    Je suis débutant en c#.

    Merci d'avance.

  2. #2
    Expert confirmé

    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Septembre 2006
    Messages
    3 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Chef de projet NTIC
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Septembre 2006
    Messages : 3 580
    Par défaut
    Parce qu'il faut recuperer seulement

    System.Windows.Forms

    pas besoin de rajouter le controls après

    Et effectivement, avec la reflexion ca se fait facilement ce que tu demandes

    J'vois pas ou elle le probleme.

    Maintenant, si tu es débutant en C#, fais autre chose.. apres à maitriser d'autres aspects avant de te plonger dans la reflexion..

    C'est juste un conseil...

    C'est comme en math, tu n'attaques pas par le théorème des résidus alors
    que t'as pas encore vu les complexes (Bon, comprendrons ceux qui pourront pour cet exemple

    The Monz, Toulouse

  3. #3
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Par défaut Désolé mais je persiste !!!
    Désolé de ne pas répondre plus vite mais j'ai 7 heures de décalage horaire avec la france !!!

    Merci de ton conseil mais je préfère continuer dans cette voie plutôt que de faire un énorme switch case qui au final posera des problemes....

    Je pense pouvoir résoudre mon principal probleme une fois que :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Type montype = Type.GetType("System.Windows.Forms.Button, System.Windows.Forms");
    ne me retournera plus null, surtout que apparement cela devrait fonctionner en me renvoyant le type de controle à partir duquel je pourrais le construire.
    Je persiste je lit je me documente il me semble tout de même que c'est comme sa que l'on avance.

    Merci tout de même pour ta réponse theMonz.
    J@ckHerror.

  4. #4
    Membre émérite
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2005
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2005
    Messages : 562
    Par défaut J'avance...doucement...mais j'avance
    J'ai compris mon erreur ....enfin...
    Je voulais absolument me passer de la version de l'assembly, fondamentale erreur!!!
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    Type monType = Type.GetType("System.Windows.Forms.Button, System.Windows.Forms, Version=1.0.5000.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
    Control ctrl = (Control) Activator.CreateInstance(monType); 
    this.Controls.Add(ctrl);
    me permet donc de créer mon controle à partir d'une chaine de caractères => d'ou le tag.
    Cela dit, je n'arrive toujours pas à récupérer le ou les assembly de ces contrôles par le code ... Car comment faire si on ne connait pas l'assembly qui définit le controle que l'on désir instancier ???? Pour moi une solution serait de le ou les récupérer et au cas ou il y en aurait plusieurs d'utiliser le plus récent .......je vais déjà essayer de les récupérer !!!

    J@cHerror, Penang.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Création dynamique de méthode sur une classe ?
    Par elitost dans le forum Général Java
    Réponses: 9
    Dernier message: 18/10/2005, 14h47
  2. Réponses: 4
    Dernier message: 05/10/2005, 16h07
  3. Récupérer des floats à partir d'une string
    Par hamster dans le forum SL & STL
    Réponses: 8
    Dernier message: 09/06/2005, 08h10
  4. [DOM] Comment creer un DOM à partir d une String
    Par RolandB dans le forum Format d'échange (XML, JSON...)
    Réponses: 3
    Dernier message: 24/04/2005, 18h11
  5. [VB.NET] Treeview creer dynamiquement a partir d'une bd
    Par graphicsxp dans le forum Windows Forms
    Réponses: 3
    Dernier message: 31/03/2005, 17h02

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