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 :

[C#] Lister les controls windows


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 5
    Par défaut [C#] Lister les controls windows
    Bonjour

    Je m'explique :
    Je suis entrain de creer une application dans laquelle il sera possible de creer des formulaires, en ajoutant des controls.

    Je veux donc donner à l'utilisateur un liste de controls windows, avec le nom, l'icone, sans avoir à remplir la liste à la main, élément par élément.

    Le problème c'est que je n'arrive pas à accéder à la liste des controls windows : button, combobox etc...

    Je pensais qu'en lisant la DLL contenant cette liste je pourrais y arriver, mais je ne sais pas comment faire.

    Aidez moi svp

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par défaut
    euh .... O_O
    je crois que tu ne peut pas et tu n'as pas le droit d'utiliser les controles windows en tant que outils d'un programme.
    c'est un peu comme si tu revendais visual studio avec des modification ... enfin je suis pas sur je suis pas juriste non plus ^^

  3. #3
    Membre émérite
    Profil pro
    Inscrit en
    Juillet 2002
    Messages
    487
    Détails du profil
    Informations personnelles :
    Âge : 56
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations forums :
    Inscription : Juillet 2002
    Messages : 487
    Par défaut Re: Lister les controls windows
    Citation Envoyé par tontonpiero
    Je suis entrain de creer une application dans laquelle il sera possible de creer des formulaires, en ajoutant des controls.
    Visual Studio, Delphi et d'autres font déjà ça très bien ...

  4. #4
    Membre Expert
    Avatar de Piotrek
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2004
    Messages
    869
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Ain (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mars 2004
    Messages : 869
    Par défaut
    Je pense pas qu'il y ait quoique ce soit qui t'empeche de creer un ide avec .Net

    Lister tous les controles, sans connaitre leur nom c'est possible, mais bon faudrait faire de la relexion sur la classe System.Windows.Forms et deduire d'une maniere ou d'une autre ce qui est controle ou pas la bas dedans.

    Mais c'est se prendre la tete pour pas grand chose:
    http://www.windowsforms.net/default.aspx?tabindex=6&tabid=47&ItemID=13&mid=142
    Avec ca tu peux recreer un mini editeur de forms sans trop te fouler


  5. #5
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 5
    Par défaut
    @ Morpheus :
    Désolé je suis nouveau... En tout cas j'ai changé le tag, j'espere que ça convient.

    @ NicolasG :
    Je le sais bien, mais je n'ai pas trop le choix, c'est dans le cadre de mes études. La différence de mon application avec Visual Studio, c'est que l'enregistrement de mes formulaires se fera en XML. Enfin je vais pas réexpliquer tout le sujet, ce serait un peu long.

    @ Piotrek :
    Citation Envoyé par Piotrek
    Lister tous les controles, sans connaitre leur nom c'est possible, mais bon faudrait faire de la relexion sur la classe System.Windows.Forms et deduire d'une maniere ou d'une autre ce qui est controle ou pas la bas dedans.

    Mais c'est se prendre la tete pour pas grand chose:
    Comme je l'ai espliqué plus haut, j'ai pas le choix, je doit me prendre la tete
    Je connaissais déja ton lien, li m'a aidé pour d'autres choses, mais ce problème reste le meme.
    Il faudrais que je sache "lire" une DLL (system.windows.form.dll en l'occurence)
    Comme dans cette application (en moins compliqué ) :
    http://www.aisto.com/roeder/dotnet/

    merci pour vos réponses

  6. #6
    AP
    AP est déconnecté
    Membre chevronné
    Avatar de AP
    Profil pro
    Inscrit en
    Avril 2002
    Messages
    480
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France, Rhône (Rhône Alpes)

    Informations forums :
    Inscription : Avril 2002
    Messages : 480
    Par défaut
    Bah ce n'est pas très compliqué via la reflexion de faire cela

  7. #7
    Membre expérimenté Avatar de del-dongo
    Inscrit en
    Mai 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 147
    Par défaut
    tu peux partir avec un code de ce type ...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    System.Reflection.Assembly myAssem = System.Reflection.Assembly.LoadWithPartialName("System.Windows.Forms");
    Type[] types = myAssem.GetTypes();
    foreach (Type t in types)
    {
    	if(t.IsSubclassOf(typeof(System.Windows.Forms.Control)))
    		listBox1.Items.Add( t.Name );
    }
    Reste peut être à affiner...

  8. #8
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 5
    Par défaut
    @ del-dongo :
    Merci beaucoup la j'avance bien. j'arrive à lister les types qui hérites de control. j'ai rajouter "!t.isAbstract()" au test pour affiner, mais il rest encore pas mal de types "inutils".
    Maintenant j'ai un autre probleme , j'ai mon "Control" et mon objet "System.Type", et j'aimerais donner ce type au Control. Comment faire ?

  9. #9
    Membre expérimenté Avatar de del-dongo
    Inscrit en
    Mai 2003
    Messages
    147
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 147
    Par défaut
    tu as toutes les infos avec ton objet t...Ne te reste plus qu'à créer une instance de la classe de ce type et à l'intégrer à ta form, par exemple...


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    System.Reflection.Assembly myAssem = System.Reflection.Assembly.LoadWithPartialName( "System.Windows.Forms" );			
    Type[] types = myAssem.GetTypes();
    listBox1.DisplayMember = "Name";
    foreach (Type t in types)
    {							     
               if(t.IsSubclassOf(typeof(System.Windows.Forms.Control)) && !t.IsAbstract)
    	            listBox1.Items.Add( t );
    }
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    if (listBox1.SelectedItem != null)
    {
    	Type t = (Type)listBox1.SelectedItem;
    	object o = Activator.CreateInstance( t );
    	myForm.Controls.Add( (Control)o );
    }


  10. #10
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 5
    Par défaut
    @ del-dongo :
    Merci beaucoup !
    Il me manquait juste la méthode Object.CreateInstance()

  11. #11
    Membre à l'essai
    Inscrit en
    Février 2006
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 5
    Par défaut
    Voila pour ceux qui veulent savoir à quoi ressemble le résultat (partiel) de l'application, vous pouvez vous rendre sur ce site

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

Discussions similaires

  1. WPF - Lister tous les controles d'une Window
    Par YHDVP dans le forum Windows Presentation Foundation
    Réponses: 3
    Dernier message: 02/11/2009, 14h07
  2. Lister tous les controles d'une feuille
    Par Oussbaba au rhum dans le forum Macros et VBA Excel
    Réponses: 6
    Dernier message: 06/11/2007, 11h28
  3. Réponses: 6
    Dernier message: 18/08/2006, 22h30
  4. [VB6] Comment lister les controles d'un frame ?
    Par enibris dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 15/04/2006, 09h58

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