Générer des boutons automatiquement

Résolu
dpfauwadel Messages postés 2 Date d'inscription lundi 9 juillet 2012 Statut Membre Dernière intervention 18 juillet 2012 - 18 juil. 2012 à 09:20
Whismeril Messages postés 17806 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 septembre 2022 - 18 juil. 2012 à 17:15
Bonjour a tous

Je développe actuellement une application pour faire un annuaire. Pour gérer celui-ci, je me base sur un fichier excel comportant les différentes informations dans les cellules. Chaque ligne correspond à un contact. Dans la partie annuaire, lorsque je clique par exemple sur la lettre A, tous mes contacts commençant par A sont alors récupérés par un tableau de taille variable. Ensuite pour chaque contact je crée un bouton avec pour texte, les informations de mon contact. Jusque la tout fonctionne !

Maintenant, je veux pouvoir cliquer sur le bouton d'un contact afin d'ouvrir une nouvelle fenêtre. Le souci est que je ne sais pas comment faire. Surtout que tout mes boutons ont la même instance. J'aimerais pouvoir créer une sorte de tableau de boutons pour avoir bouton1, bouton2 ... en fonction du nombre de contacts commençant par A.
J'aimerais ensuite pouvoir utiliser les fonctions du type bouton1_click.

Voici le code que j'utilise pour créer mes boutons

        private void CreateButton(string ButtonName, string ButtonText, int k)
        {
            ButtonContact = new Button();
            ButtonContact.Name = "ButtonName";
            ButtonContact.Text = ButtonText;
            ButtonContact.Visible = true;

            ButtonContact.Width = 400;
            ButtonContact.Height = 250;
            ButtonContact.Location = new Point(15, 15 + k * ButtonContact.Height);

            panel1.Controls.Add(ButtonContact);

        }


Merci d'avance

3 réponses

Whismeril Messages postés 17806 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 septembre 2022 618
18 juil. 2012 à 09:55
Bonjour, il faut que tu abonnes tes boutons à une méthode pour l'évenement Click, par exemple

button2.Click += new System.EventHandler(this.button2_Click);


Au moment ou tu vas ecrie "+=" Visual Studio va te proposer de taper sur la touche Tabulation 2 fois pour générer tout seul l'abonnement et la méthode.

Dans la méthode tu n'auras plus qu'a écrire le code necessaire.

Le paramètre sender représentera l'instance unique du bouton sur lequel tu as cliqué, il sera de type object il faudra don le caster en Button si tu as besoin
Button monBouton  (Button)sender;


Pour savoir dequel contatc il s'agit, tu peux te servir du texte que tu as écrit ou de la proporiéte Tag du bouton, à la génération du peux par exemple y enregistrer l'index de ton contact.




Whismeril
3
dpfauwadel Messages postés 2 Date d'inscription lundi 9 juillet 2012 Statut Membre Dernière intervention 18 juillet 2012
18 juil. 2012 à 14:24
Parfait, c'est exactement ce que je voulais.

Merci beaucoup
0
Whismeril Messages postés 17806 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 septembre 2022 618
18 juil. 2012 à 17:15
De rien


Whismeril
0