Problème Application C# Win Form

Résolu
Bonjour,

Je viens demander votre aide car je susi vraiment bloqué en c# dans le developpement d'une petite application pour mon école.

Mon soucis est que je récupère le résultat d'une requête SQL, et pour j'écris le résultat dans des labels dynamique. J'aimerais qu'en cliquant sur le label, j'ajoute à une table Mysql l'id du produit écrit dans le label.. Je ne sais pas si vous voyer, peut être qu'avec ce simple bout de code, ce sera mieux..

while (Reader.Read())
{
string prix,taille,nom,marque, description;
prix = Reader.GetString(4)+ "€";
taille=Reader.GetString(3);
nom=Reader.GetString(2);
marque = Reader.GetString(1);
description = Reader.GetString(5);
id=Reader.GetString(0);

Label[] results_label = new Label[nombre_résultats];

results_label[x] = new Label();
results_label[x].Location = new System.Drawing.Point(posx, posy);
results_label[x].Size = new System.Drawing.Size(300, 25);
results_label[x].Font = new Font("Segoe UI", 11);
results_label[x].Text = marque + " " + nom + " " + taille + " " + prix;
results_label[x].AutoSize = false;

Controls.Add(results_label[x]);
posy += 25;
x+=1;
}

5 réponses

  1. Mon soucis majeur est que je ne sais pas quelle label je clique.
    Que ce sois label[2] ou label[9] ou label[x], c'est la même méthode...
    Comment je pourrais récupérer ce x?? C'est là mon dernier soucis, je suis désolé je débute en c#.. ^^
    1. Regarde ma deuxième réponse. Ce code te permet de récupérer l'objet Label sur lequel tu as cliqué. et UNIQUEMENT celui la, qu'il y en ai 1, 10, 100... Tu aura accès a toutes les méthodes de cet objet.
    2. J'ai stocké mon id en text d'un bouton et j'ai mis le text transparent, cest sale mais ça marche, merci beaucoup!
  2. D'accord merci beaucoup, et puis je stocker une variable de type int dans un label sans l'écrire?

    Comme ça je récupère l'id dans la fonction, et je n'ai plus cas éxécuter ma requête!

    Merci d'avance
    1. Euh ça je ne pense pas. Mais tu peux utiliser une liste d'objets qui ont id et une valeur , ou récupérer l'id dans ta base dans ta base
  3. Eh bien comme ceci:
     
             private void label1_MouseUp(object sender, MouseButtonEventArgs e)
            {
                Label l = (Label)sender;
                MessageBox.Show(l.Text);
            }
    Le label1_MouseUp est l'évènement appelé par tous les labels. Tu n'as qu'à récupérer l'objet qui déclenche l'évènement (sender). Ensuite tu as accès à toutes les propriétés de cet objet.
    1. Je l'ai fait effectivement, mais comme c'est un tableau de label, je ne vais pas créer un évènement pour chaque label..
      Et comment je récupère l'id qui n'est pas stocké dans le label?
      1. Bonjour,
        rajoute juste un évènement sur ton label:
                    Label l = new Label();
                    l.MouseUp += new MouseButtonEventHandler(l_MouseUp);

        Et exécute ta requête dans la fonction appelée.