Mentalalex
Messages postés12Date d'inscriptionvendredi 11 janvier 2008StatutMembreDernière intervention11 juin 2009
-
2 oct. 2008 à 10:07
Mentalalex
Messages postés12Date d'inscriptionvendredi 11 janvier 2008StatutMembreDernière intervention11 juin 2009
-
9 oct. 2008 à 15:49
Bonjour a tous,
Jai un petit soucis en ce moment, en effet j'aimerais bien modifier le "Text" de plusieurs bouton dynamiquement grace a un for et un dataset, mais ca ne fonctionne pas : Apres plusieurs recherche, j'ai souvent entendu parler de "reflexion" qui me permetterais de recuperer le nom de l'objet et de le modifier, mais sans reussite :(
Voic le code :
int z;
for (z; z<7; z++)
{Favori_+z.Text Fav+z ds.Tables["favori"+z].Rows[0].ToString();
}
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 2 oct. 2008 à 15:43
Re,
Le test "btnName != null" est inutile car il retourne toujours vrai.
btnName = string.Concat("Favori_", z); //qui retourne forcément Favori_ + quelque chose.
Le test dont je te parlais est: if(this.Controls[btnName] != null)
Ce test permet de t'assurer que le bouton existe.
Pour ton erreur, elle peut donc venir de:
- le bouton n'existe pas (il faudra donc regarder pourquoi)
- La table ou la ligne de la table dans : ds.Tables["favori" + z.ToString()].Rows[0] n'existe pas non plus.
A toi d'analyser tout ça ^^
Billou_13
Vous n’avez pas trouvé la réponse que vous recherchez ?
Mentalalex
Messages postés12Date d'inscriptionvendredi 11 janvier 2008StatutMembreDernière intervention11 juin 2009 2 oct. 2008 à 16:09
J'ai analysé tout ca !
Pour verifier que ce n'etait pas du a la ligne de la table qui n'existait pas, j'ai enlevé ca, et je l'ai remplacé par
z.ToString(); pour afficher sur le bouton, juste son Numéro
et j'ai rajouté la condition que vous avez dis !
Au final j'ai donc :
if (this.Controls[btnName] != null)
{
this.Controls[btnName].Text = z.ToString();
}
Avant le if, un MessageBox.Show(btnName); renvoi bien Favori_1,Favori_2,...,Favori_6 !
Si je met le msgbox dans la condition, rien ne se produit !
J'en conclu que pour VS2k5, mon bouton n'existe pas, donc il ne peux pas le renommer...
Je suis dans une impasse etant donné que mes boutons portent bien ces noms...
billou_13
Messages postés860Date d'inscriptionjeudi 4 mars 2004StatutMembreDernière intervention19 août 201429 2 oct. 2008 à 16:28
Alors là, je ne vois pas ^^
As-tu essayer de passer en mode pas à pas.
Vérifie la valeur (avec l'espion en mode pas à pas) de this.Controls[btnName].
Cela te retourne-t-il bien le bouton en question ???
Si ce n'est pas le cas, executes-tu le code sur la form qui contient les boutons ??? car le "this" renvoi la form courante.
Mentalalex
Messages postés12Date d'inscriptionvendredi 11 janvier 2008StatutMembreDernière intervention11 juin 2009 9 oct. 2008 à 15:49
Merci Coq lol,
J'ai remarqué par la suite que mon ds.Tables["favori" + z.ToString()].Rows[0].ToString();
n'etait pas correcte, mais ca ne resoud pas mon probleme
Ce probleme persiste toujours, mais dans un autre cas de figure.
J'entre dans une Textbox, je recupere son nom, et je le met dans une variable.
Puis sur un btn clique, je veux modifier le texte de ce controls, via la variable...
Voici le code
//Dans je focus ma textbox
private void NumNote_Enter(object sender, EventArgs e)
{
//Je stocke son nom
string test = "NumNote";
}
//Quand je clique sur le bouton
private void Button4_Click(object sender, EventArgs e)