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 :

[VB.NET] extraire tt les controls prensents dans une form.


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut [VB.NET] extraire tt les controls prensents dans une form.
    salut

    est ce qu'il ya une classe ou methode qui permet de manipuler ou d'extraire tt les controls d'une form ??

    svp c urgent

  2. #2
    Membre actif Avatar de DeusXL
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    300
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 300
    Points : 272
    Points
    272
    Par défaut
    Qu'entends-tu par "extraire" ?
    Tous les controls sont présents dans Form.Controls ... Après tu peux les manipuler avec un For Each mais je ne vois pas ce que tu entends par "extraire".

  3. #3
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    en fait je developpe une application qui va permettre de modifier les propriètés des controles d'un projet vb.net quelconque.

    au debut j'ajoute au fichier .vbproj du projets le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
                   <File
                        RelPath = "feuille.vb"
                        SubType = "Form"
                        BuildAction = "Compile"
                    />
                    <File
                        RelPath = "feuille.resx"
                        DependentUpon = "fonctions.vb"
                        BuildAction = "EmbeddedResource"
                    />
    feuille.vb c le code ki va permettre de modifier les propriètés des controls.

    et je modifie cette variable pour ke la form que je viens d'ajouter au projet se lance au demarrage
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
       StartupObject = "nom_de_projet.feuille"
    aprés je copie les fichier feuille.vb et feuille.resx ds le dossier de projet
    alors lorsque j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For each c in Me.controls
    ds feuille.vb
    est ce que ça concerne ttes les form et ts les controls ki peuvent exister ds le projet que g eu comme input ?

  4. #4
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    Citation Envoyé par Splash
    lorsque j'écris :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    For each c in Me.controls
    ds feuille.vb
    est ce que ça concerne ttes les form et ts les controls ki peuvent exister ds le projet que g eu comme input ?
    La propriété Controls donne tous les contrôles d'un contrôle, donc si Me est une Form tu aura les contrôles de la Form. Mais si cette Form contient un Panel qui contient des contrôles tu ne les auras pas !
    Donc pour ton projet il faut que tu écrive une méthode qui boucle sur toutes les Forms de ton projet, puis sur chaque Form appeler une méthode récursive pour lister les contrôles.

  5. #5
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    Merci

    le probleme c que je connais pas a l'avance les formes ki existent dans le projet. j'ai essayé d'extraire les noms des formes a partir de dossier de projet(les fichier qui ont l'extension .resx) mais j'obtien le nom comme String et lorsque je fais pour manipuler la forme, variable c le nom de la forme, ça marche pas.

    je debute en .net

    alors est ce k'il ya un autre moyen (une classe ou 1 methode ds .net framework) pour obtenir tt les form ki existe ds le projet?

  6. #6
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    Tu peux utiliser la Reflection pour instancier des objets à partir du nom de la classe

    en C# ça donne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    using System.Reflection;
    ...
    try
    {
        Assembly myAssembly = Assembly.GetExecutingAssembly();
        Type l_typeFonction = myAssembly.GetType("monNameSpace.maClasse");
        m_fonction = Activator.CreateInstance(l_typeFonction));
    }
    catch (System.Reflection.ReflectionTypeLoadException)
    {
    ...
    }
    cherche dans les autres sujets tu trouveras des exemples VB

  7. #7
    Candidat au Club
    Inscrit en
    Décembre 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Décembre 2005
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    alors j'essaie de faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Imports System.Reflection
    ----------------------------------------------------
      Dim MyAssembly as Assembly
      Dim frm as Type
      Dim t as Type
    MyAssembly = Assembly.GetExecutingAssembly()
    frm = Type.GetType("System.Windows.Froms")
     
    For Each t in asmb.GetTypes()
        If t.IsSubClassOf(frm) Then
           'Ajout dans un tableau
        End If
    Next t
    ça marche pas. est ce que j'ai manqué une ligne ??
    SVP c urgent.

  8. #8
    Membre à l'essai
    Inscrit en
    Août 2004
    Messages
    19
    Détails du profil
    Informations forums :
    Inscription : Août 2004
    Messages : 19
    Points : 23
    Points
    23
    Par défaut
    Peut-être une faute de frappe ?

    Citation Envoyé par Splash
    alors j'essaie de faire ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    Imports System.Reflection
    ----------------------------------------------------
      Dim MyAssembly as Assembly
      Dim frm as Type
      Dim t as Type
    MyAssembly = Assembly.GetExecutingAssembly()
    frm = Type.GetType("System.Windows.Froms") <--- Froms au lieu Forms
     
    For Each t in asmb.GetTypes()
        If t.IsSubClassOf(frm) Then
           'Ajout dans un tableau
        End If
    Next t
    ça marche pas. est ce que j'ai manqué une ligne ??
    SVP c urgent.

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 05/10/2009, 18h46
  2. Mise a jour de controle utilisateur dans une forme
    Par pascalwick dans le forum Windows Forms
    Réponses: 2
    Dernier message: 02/12/2008, 15h53
  3. [c#]probleme avec les menu toolStripItem dans une form mdi??
    Par must19 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 05/11/2006, 23h02
  4. [VB.net] controler Excel dans une Form ?
    Par sergio_bzh dans le forum Windows Forms
    Réponses: 8
    Dernier message: 14/06/2006, 14h08
  5. Réponses: 9
    Dernier message: 13/04/2006, 11h40

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