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

C# Discussion :

Passer des contrôles générés par code dans une autre méthode [Débutant]


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 114
    Points : 71
    Points
    71
    Par défaut Passer des contrôles générés par code dans une autre méthode
    Bonjour et merci à tous ceux qui prendront le temps de regarder / répondre à cette qu

    Je suis entrain d'essayer de passer les controles de cette méthode :

    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
    private void btn_AddAuthor_Click(object sender, EventArgs e)
            {
                Button cbtn_CreateNewAuthor = new Button();
                Label clbl_AuthorName = new Label();
                TextBox ctb_AuthorName = new TextBox();
                Label clbl_AuthorLastName = new Label();
                TextBox ctb_AuthorLastName = new TextBox();
     
                // The first name
                clbl_AuthorName.Text = "Prénom de l'Auteur :";
                clbl_AuthorName.AutoSize = false;
                clbl_AuthorName.Height = 20;
                clbl_AuthorName.Width = 100;
                flp_AddNewThings.Controls.Add(clbl_AuthorName);
                flp_AddNewThings.Controls.Add(ctb_AuthorName);
                flp_AddNewThings.SetFlowBreak(ctb_AuthorName, true);
     
                // the Last Name
                clbl_AuthorLastName.Text = "Nom de l'Auteur";
                clbl_AuthorName.AutoSize = false;
                clbl_AuthorName.Height = 20;
                clbl_AuthorName.Width = 100;
                flp_AddNewThings.Controls.Add(clbl_AuthorLastName);
                flp_AddNewThings.Controls.Add(ctb_AuthorLastName);
                flp_AddNewThings.SetFlowBreak(ctb_AuthorLastName, true);
     
                //The Button
                cbtn_CreateNewAuthor.Text = "Nouvel Auteur";
                cbtn_CreateNewAuthor.Click += new System.EventHandler(cbtn_CreateNewAuthor_Click);
                flp_AddNewThings.Controls.Add(cbtn_CreateNewAuthor);
     
            }
    vers celle-là : afin d'en utiliser le contenu :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    private void cbtn_CreateNewAuthor_Click(object sender, EventArgs e)
    {
        using (var db = new ProgramContext())
        {
     
        }
    }
    Je n'arrive pas à voir comment je dois faire... et je ne trouve que très peu de réponses en faisant une recherche google.
    S'il n'y a que les imbéciles qui ne changent pas d'avis, mes clients sont des génies.

    Aet, Ukyuu.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Novembre 2004
    Messages
    114
    Détails du profil
    Informations personnelles :
    Âge : 44
    Localisation : France

    Informations forums :
    Inscription : Novembre 2004
    Messages : 114
    Points : 71
    Points
    71
    Par défaut
    Voici la solution qu'on m'a suggérée et que j'ai retenue :

    Ajouter un tag dans la première fonction :

    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
                // The first name
                clbl_AuthorName.Text = "Prénom de l'Auteur :";
                clbl_AuthorName.AutoSize = false;
                clbl_AuthorName.Height = 20;
                clbl_AuthorName.Width = 100;
                // We put a tag on ctb_AthorName so that we can look it up later on
                ctb_AuthorName.Tag = "txtFirstName";
                // And we add it all to the FlowLayoutPanel
                flp_AddNewThings.Controls.Add(clbl_AuthorName);
                flp_AddNewThings.Controls.Add(ctb_AuthorName);
                flp_AddNewThings.SetFlowBreak(ctb_AuthorName, true);
     
                // the Last Name
                clbl_AuthorLastName.Text = "Nom de l'Auteur";
                clbl_AuthorName.AutoSize = false;
                clbl_AuthorName.Height = 20;
                clbl_AuthorName.Width = 100;
                // Same here, we put a tag for later lookup
                ctb_AuthorLastName.Tag = "txtLastName";
                // And we add all that to the rest
                flp_AddNewThings.Controls.Add(clbl_AuthorLastName);
                flp_AddNewThings.Controls.Add(ctb_AuthorLastName);
                flp_AddNewThings.SetFlowBreak(ctb_AuthorLastName, true);
    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
            private void cbtn_CreateNewAuthor_Click(object sender, EventArgs e)
            {
                using (var db = new ProgramContext())
                {
                    // First we create a list of the flow layout panel controls and add the controls to it
                    List<Control> AllControls = new List<Control>();
                    foreach (Control c in flp_AddNewThings.Controls)
                    {
                        AllControls.Add(c);
                    }
     
                    // Then we take the controls we need
                    var txtFirstName = AllControls.SingleOrDefault(x => x.Tag == "txtFirstName");
                    var txtLastName = AllControls.SingleOrDefault(x => x.Tag == "txtLastName");
     
                    // if the two above arent null, we go on :
                    var author = new Author();
                    if (txtFirstName != null && txtLastName != null)
                    {
                        // We make sure there's actually a name and last name entered
                        if (txtFirstName.Text == "" && txtLastName.Text == "")
                        {
                            author.FirstName = txtFirstName.Text;
                            author.LastName = txtLastName.Text;
                        }
                        else // else we make the person aware it's needed
                        {
                            if (txtFirstName.Text == "") flp_AddNewThings.Controls.Add(new Label{ Text = "Vous devez ajouter un Prénom"});
                            if (txtLastName.Text == "") flp_AddNewThings.Controls.Add(new Label { Text = "Vous devez ajouter un Nom de Famille" });
                        }
     
                        // we verify if it's not already in the db:
     
                        var AutorOk = db.Authors.Any(x => x.LastName == author.LastName && x.FirstName == author.FirstName);
                        if (AutorOk)
                        {
                            db.Authors.Add(author);
                            db.SaveChanges();
     
                            // Display all Authors from the database 
                            var query = from b in db.Authors
                                        orderby b.DisplayName
                                        select b;
     
                            LogBox.Text = "Auteurs Connus : \n";
                            foreach (var item in query)
                            {
                                LogBox.AppendText(item.DisplayName + "\n");
                            }
                        }
     
                    }
                }
     
            }
    S'il n'y a que les imbéciles qui ne changent pas d'avis, mes clients sont des génies.

    Aet, Ukyuu.

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

Discussions similaires

  1. Passer un Objet (pojo) par get dans une url.
    Par Altenide dans le forum Servlets/JSP
    Réponses: 5
    Dernier message: 09/11/2010, 12h24
  2. Comment manipuler des contrôles ajoutés par code
    Par Claude_Azoulai dans le forum VB.NET
    Réponses: 5
    Dernier message: 17/04/2010, 16h30
  3. Insérer un bout de code dans une autre page
    Par Yagami_Raito dans le forum Langage
    Réponses: 2
    Dernier message: 04/06/2007, 17h00
  4. Réponses: 1
    Dernier message: 24/03/2007, 18h50
  5. Creer des user par code dans une base de donnees Interbase
    Par dachir dans le forum Bases de données
    Réponses: 2
    Dernier message: 16/07/2006, 14h55

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