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 :

Récupérer tous les objets d'une application


Sujet :

Windows Forms

  1. #21
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    Je m'en suis sortie grâce à vous!

    A par que les ToolStrpButton ( bouton dans un menu ) ne sont pas considérés comme des contrôles j'ai l'impression.

    Et il me reste aussi mes colonnes.

    J'ai rajouté un champs dans ma table objet pour l'id du père.

    Objet_Id | Objet_Nom | Objet_Type | Objet_Id_Pere
    J'utilise scope_identity() pour récupérer l'id du dernier ajout.

    Pour voir à quoi ça ressemble:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
     
            private void parcourControl(Control c,int IdPere)
            {
     
                //AJOUT DANS LA BASE
                if (c.GetType().ToString() != "System.Windows.Forms.VScrollBar" && c.GetType().ToString() != "System.Windows.Forms.HScrollBar")
                {
                    string sql = "AjoutObjet '" + c.Name + "','" + c.GetType().ToString() + "','" + IdPere.ToString() + "' ";
                    SqlConnection ConsultConnection = new SqlConnection(oSurveillant.strConnexionSecurite);
                    SqlCommand Command = new SqlCommand(sql, ConsultConnection);
     
                    Command.Connection.Open();
                    int IdFils = (int)Command.ExecuteScalar();
                    Command.Connection.Close();
                    if (c.Controls.Count != 0)
                    {
                        foreach (Control c1 in c.Controls)
                        {
     
                            parcourControl(c1,IdFils);
                        }
                    }
                }
            }
     
            private void Bt_Upload_Click(object sender, EventArgs e)
            {
                string sql = "ViderObjets ";
                SqlConnection ConsultConnection = new SqlConnection(oSurveillant.strConnexionSecurite);
                SqlCommand Command = new SqlCommand(sql, ConsultConnection);
     
                Command.Connection.Open();
                Command.ExecuteNonQuery();
                Command.Connection.Close();
     
    //On met le père de l'apply à l'id 0
                string sql2 = "AjoutObjet 'Consultation' ,'Application','0' ";
                SqlConnection ConsultConnection2 = new SqlConnection(oSurveillant.strConnexionSecurite);
                SqlCommand Command2 = new SqlCommand(sql2, ConsultConnection2);
     
                Command2.Connection.Open();
                Id_Application = (int)Command2.ExecuteScalar();
                Command2.Connection.Close();
     
                Assembly asm = Assembly.GetExecutingAssembly();
                // Parcours de tous les types de l'assembly
                foreach (Type t in asm.GetTypes())
                {
                    // Il s'agit d'une form
                    if (t.BaseType == typeof(Form))
                    {
                        string sql3 = "AjoutObjet '" + t.Name.ToString() + "','" + t.BaseType.ToString() + "','" + Id_Application.ToString() + "'";
                        SqlConnection ConsultConnection3 = new SqlConnection(oSurveillant.strConnexionSecurite);
                        SqlCommand Command3 = new SqlCommand(sql3, ConsultConnection3);
     
                        Command3.Connection.Open();
                        IdFormEnCours = (int)Command3.ExecuteScalar();
                        Command3.Connection.Close();
     
                        if(t.Name.ToString() == "F_ConsultRef")
                        {
                            Form f = (Form)Activator.CreateInstance(t, oSurveillant, false);
                            foreach (Control c in f.Controls)
                            {
                                parcourControl(c, IdFormEnCours);
                            }
                        }
                        else{
                            Form f = (Form)Activator.CreateInstance(t, oSurveillant);
                            foreach (Control c in f.Controls)
                            {
                                parcourControl(c, IdFormEnCours);
                            }
                        }
                    }
                }
            }
    Donc si vous avez des idées pour mes ToolStripButton et mes noms de colonnes, je suis prenneuse!

  2. #22
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Les ToolStripButton ne sont pas contenues dans une propriété Controls, donc forcément tu ne les trouveras pas.
    Il te faut aussi vérifier les Items des menus.

    Pour les colonnes, vu que le programme ne sait jamais exactement combien il y en a, tu va devoir le faire à la main...

  3. #23
    Membre confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2008
    Messages
    337
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2008
    Messages : 337
    Points : 456
    Points
    456
    Par défaut
    Pour les noms de colonnes cela dépend de la façon dont tu alimentes tes grids.
    Si tu les alimentes via un dataset typé et des bindingSource dans le designer tu peux le faire en gérant le type de control, c'est à dire que si le control est un datagrid tu fais un foreach(DataGridViewColumns in monDatagrid.Columns).
    Par contre si tu alimentes tes grilles dans ton code il faudra que tu le fasse dans le constructeur de ta form pour que cette solution fonctionne.

  4. #24
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    Je relance le topic, car je ne trouve pas les ConexteMenuStrip de mes form.

    Pourtant d'après MSDN, j'ai l'impression que c'est un control.

    Ca me parait étrange qu'on ne puisse pas trouver les ContextMenuStrip d'un Form.

    Les ContextMenuStrip font partie de quelle collection?

  5. #25
    Membre émérite
    Avatar de laedit
    Homme Profil pro
    Consultant études et développement
    Inscrit en
    Décembre 2006
    Messages
    1 344
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consultant études et développement
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Décembre 2006
    Messages : 1 344
    Points : 2 265
    Points
    2 265
    Par défaut
    Les ContextMenuStrip sont bien des Controls.

    Par contre, ils ne sont pas dans les collections de Controls, il faut passer par la propriété ContextMenuStrip des Forms.

  6. #26
    Membre régulier Avatar de Chacha35
    Profil pro
    Étudiant
    Inscrit en
    Septembre 2009
    Messages
    264
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Septembre 2009
    Messages : 264
    Points : 114
    Points
    114
    Par défaut
    Super, merci!

+ Répondre à la discussion
Cette discussion est résolue.
Page 2 sur 2 PremièrePremière 12

Discussions similaires

  1. Réponses: 3
    Dernier message: 22/06/2011, 15h05
  2. BDC récupérer tous les items d'une application depuis le code
    Par tigrou2405 dans le forum Développement Sharepoint
    Réponses: 1
    Dernier message: 20/01/2011, 15h37
  3. [RegEx] Récupérer tous les liens d'une page
    Par micatmidog dans le forum Langage
    Réponses: 13
    Dernier message: 03/11/2006, 01h37
  4. Récupérer tous les handles d'une application choisie
    Par dacid dans le forum API, COM et SDKs
    Réponses: 13
    Dernier message: 21/04/2006, 16h24
  5. Réponses: 7
    Dernier message: 08/01/2005, 13h24

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