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 :

Récupération des textes des boutons dans une colonne du datagridview


Sujet :

C#

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 82
    Points : 40
    Points
    40
    Par défaut Récupération des textes des boutons dans une colonne du datagridview
    Bonsoir à tous, vu que je suis novice en développement avec C# je rencontre quelques problèmes.
    Je vais essayer d'être clair: j'ai créé statiquement des boutons(avec la boite à outils)mais leurs textes je les récupère à partir de la base de données, maintenant je veux que quand je clique dur l'un de ces boutons j'affiche son texte dans un champ du datagridview.
    Comment faire?

    Merci de m'aider

  2. #2
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 82
    Points : 40
    Points
    40
    Par défaut
    Voilà j'ai trouvé la solution mais ça ne marche pas convenablement. Bon j'ai des boutons se trouvant dans un panel et je veux que quand je clique sur un de ces boutons j'affiche le text du bouton dans une ligne du datagridview. Mais parfois s'affiche une ligne parfois deux lignes parfois quatre ligne de la même information. Je n'arrive pas à interpréter qu'est ce qu'il se passe
    Voilà mon code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    panel_article.Controls[t - k].Click += new EventHandler(article_Click);
    et puis je gère mon évènement Click comme suit
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     private void article_Click(object sender, System.EventArgs e)
            {
     
                Button btnArticle = (Button)sender;
                string nom = btnArticle.Name;
                string prix = (string)btnArticle.Tag;
               dgv_commande.Rows.Add(1, nom, prix);
             }
    où nom et prix ce sont des données que je récupère à partir de ma table sql.
    J'attends vos conseils impatiemment pour avancer et merci

  3. #3
    Membre confirmé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juin 2005
    Messages
    700
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 48
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Tourisme - Loisirs

    Informations forums :
    Inscription : Juin 2005
    Messages : 700
    Points : 488
    Points
    488
    Par défaut
    Ton probleme c'est "des fois ca ajoute une ligne, des fois 2, des fois 4" c'est ca?

    De ce que tu nous montre, ca ne devrait le faire qu'une fois MAIS !

    Tout dépend de où tu place :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    panel_article.Controls[t - k].Click += new EventHandler(article_Click);
    Si tu le place dans le constructeur de ta form, alors pas de probleme.
    Mais si tu le place dans un block de code qui sera executé plusieurs fois, alors le probleme se posera.

    Met un point d'arret sur cette ligne, elle ne doit s'executer qu'une fois.

    Sinon, facon degueulasse, tu fais ca pour t'assurer que tu ne sera abonné qu'une seul fois à l'evenement Click :

    tu déclare une nouvelle variable dans ta form :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    EventHandler callbackClickArticle = null;
    puis à la fin de constructeur tu ajoute:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    callbackClickArticle = new EventHandler(article_Click);
    Enfin, ta fameuse ligne d'abonnement, tu la fait précéder d'un désabonnement (ca ne plantera pas) comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    panel_article.Controls[t - k].Click -= callbackClickArticle ;
    panel_article.Controls[t - k].Click += callbackClickArticle ;
    Si devant chaque ligne d'abonnement (+=) tu fais un désabonnement (-=) ca t'evitera les abonnements doublons.

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 82
    Points : 40
    Points
    40
    Par défaut
    Merci giova_fr ça marche comme ça mais dès que j'ai ajouté un control sur la ligne que je vais ajouter c'est à dire je vérifie si cette ligne existe dans la datagridview donc j'incrémente ma première colonne du datagridview sinon je l'ajoute à ma datagridview, le fonctionnement incompréhensible retourne de nouveau.
    Voilà m on nouvel évènement Article_Click
    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
     
    privatevoid article_Click(object sender, System.EventArgs e)
            {
     
    Button btnArticle = (Button)sender;
    string nom = btnArticle.Name;
    string prix = (string)btnArticle.Tag;
    int nbreLigne = dgv_commande.Rows.Count -1;
    int valeur = 0;
    if (nbreLigne > 0)
    {
        for (int i = 0; i < nbreLigne; i++)
          {
     
           if (dgv_commande.Rows[i].Cells[1].Value.ToString().Equals(nom))
           {
     
     
               valeur = (int)this.dgv_commande.CurrentRow.Cells[0].Value ;
               valeur += 1;
                this.dgv_commande.CurrentRow.Cells[0].Value = valeur;
     
          }
     
           else
            {
               dgv_commande.Rows.Add(1, nom, prix);
           }
        }
    else
    {
                    dgv_commande.Rows.Add(1, nom, prix);
    }
     
            }
    Comment procéder???

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 82
    Points : 40
    Points
    40
    Par défaut
    Il y a un problème avec la comparaison
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (nom.Equals(dgv_commande.Rows[i].Cells[1].Value.ToString()))
    mais je ne sais pas comment résoudre ,j'attends encore vos réponses pour me débloquer et merci

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Je rencontre le même problème avec mon application belfafi,si tu as trouvé une solution merci de me l'indiquer,sinon ça serait gentil si quelqu'un d'autre nous montre comment procéder

  7. #7
    Nouveau membre du Club
    Inscrit en
    Janvier 2010
    Messages
    44
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 44
    Points : 30
    Points
    30
    Par défaut
    Bonsoir à tous,vraiment je bloque sur ce point; mon problème est que quand je clique sur un bouton parfois je récupère une fois sa valeur parfois 2, donc l'évènement eventhandler ne fonctionne pas correctement ,je ne sais pas comment corriger ce problème pourtant j'ai cherché dans les forums mais envain.
    Merci de me donner un coup de pouce; ça serait vraiment gentil

Discussions similaires

  1. declarer des functions de boutons dans une boucle for
    Par superleon dans le forum ActionScript 3
    Réponses: 1
    Dernier message: 06/06/2009, 12h24
  2. [DataGridViewButtonColumn] Bouton dans une colonne avec une image
    Par aurelien.tournier dans le forum Windows Forms
    Réponses: 1
    Dernier message: 19/11/2007, 11h35
  3. [JTable] ajout d'un bouton dans une colonne
    Par Blast dans le forum Composants
    Réponses: 7
    Dernier message: 15/03/2007, 17h33
  4. [CSS]problème centrage texte de bouton dans une boîte
    Par Aurelius dans le forum Mise en page CSS
    Réponses: 3
    Dernier message: 06/09/2005, 16h01
  5. Concaténer des lignes d'enregistrements dans une colonne
    Par dany13 dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 08/07/2005, 21h56

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