Création dynamique de boutons

Signaler
Messages postés
31
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
5 mai 2012
-
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
-
bonjour,


J'ai un petit problème que je n'arrive pas à résoudre c'est pour quoi
je viens ici en espérant trouver quelqu'un qui pourra m'aider.


Le problème est simple j'aimerai créer dynamiquement un tableau de bouton.


j'ai donc écrit ceci:


Button[,] mesBtRDV;

mesBtRDV = new Button[18, nbcolonne];

for (int j = 0; j < nbcolonne; j++)

{

for (int i = 0; i < 18; i++)

{

mesBtRDV[j, i] = new Button();

mesBtRDV[j, i].Height = (panMesRdv.Height / 18) - 4;

mesBtRDV[j, i].Width = (panMesRdv.Width / nbcolonne) - 4;

mesBtRDV[j, i].Top = 3 + (mesBtRDV[j, i].Height * i);

mesBtRDV[j, i].Left = 3 + (mesBtRDV[j, i].Width * j);

panMesRdv.Controls.Add(mesBtRDV[j, i]);

}

}

//nbColonne vaut par exemple 3

//le panel fait 587/481


Ce petit bout de code me génère une exception:


l'exception IndexOutOfRangeException n'a pas été gérée


ses conseils de dépannage sont:


s'assurer que l'index n'est pas négatif //c'est ok

s'assurer que la taille maximale de la liste est inférieure à la taille de la liste

s'assurer que les noms des colonnes de donnée sont corrects


Merci de votre aide

4 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
Salut,

Tu n'aurais pas inverser "i" et "j" par hasard ?

/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
327
Date d'inscription
mardi 17 février 2004
Statut
Membre
Dernière intervention
10 avril 2010
8
Salut,

Tu dois juste inverser i et j.  Si tu déclares

mesBtRDV = new Button[18, nbcolonne];

alors dans l'expression mesBtRDV[j, i] , j ne peut aller que jusqu'à 18 (et non jusqu'à 'nbcolonne' comme déclaré dans ta boucle for

Soit tu inverses i et j dans ta boucle for, soit tu écris mesBtRDV[i, j]
Messages postés
31
Date d'inscription
dimanche 6 mai 2007
Statut
Membre
Dernière intervention
5 mai 2012

merci,

je devais etre plein, lol
Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
97
C'est pour ça qu'on essaie de mettre des vrais noms au lieu de "i", "j" & co, beaucoup plus lisible.

/*
coq
MVP Visual C#
CoqBlog
*/