Probleme textbox

cs_Byrong Messages postés 224 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 24 juillet 2013 - 30 janv. 2010 à 16:16
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 1 févr. 2010 à 10:38
Bonjour

voila apres avoir utilisé pendant un petit moment vb.net, java

J'ai décidé de tenter le C#
Et j'ai une question

Comment peut-on manipuler les nom de textbox (textbox1, textbox2,...) avec une boucle?

Dans vb ont fesait un me.controls("TextBox" & i).text ou autre. et cela dans une boucle for i mais je n'arrive pas à manipuler cela en c#

Pouvez vous m'aider?

5 réponses

cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
30 janv. 2010 à 17:05
ah effectivement c'est totalement différent en C#.

On ne pourra pas écrire :
me.controls("TextBox" & i).text

MAis il faudra écrire :
this.Controls["textBox" + i].Text


Attention au respect des majuscules/minuscule qui est très important en C#
De même, les méthodes et fonctions prennent les () pour l'appel (en vb elles sont rajoutées automatiquement, pas en C#, il faut penser à les mettre)

[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0
cs_Byrong Messages postés 224 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 24 juillet 2013
30 janv. 2010 à 17:06
merci, moi je fesait avec des () mais c'est des []

merci merci
0
cs_Byrong Messages postés 224 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 24 juillet 2013
30 janv. 2010 à 17:16
je viens de tester


for (int i 1; i 4; i++)
{
this.Controls["textBox" + i].Text = i.ToString();
}

mais cela n'affiche rien dans le textBox

pourtant les textbox porte bien le nom "textBox1", "textBox2", "textBox3", "textBox4"

as tu une idée??
0
cs_casy Messages postés 7741 Date d'inscription mercredi 1 septembre 2004 Statut Membre Dernière intervention 24 septembre 2014 40
30 janv. 2010 à 17:25
Parce que tu rentre pas dans ta boucle For

Les boucles For en C# fonctionnent comme en C, C++, ..., c'est à dire un peu différemment de VB.

En VB tu "Pour ma variable égale telle valeur à telle valeur, faire ..."

En C#, C, C++, ... c'est "Pour ma variable égale à ma valeur; tant que ma variable rempli ma condition; comment évolue ma variable à la fin, faire ...

Il te faut donc écrire ici
for (int i = 1; i <= 4; i++)


[i][b]---- Sevyc64 (alias Casy) ----
[hr]# LE PARTAGE EST NOTRE FORCE #/b/i
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
1 févr. 2010 à 10:38
En fait, une boucle for (en C, C++, C#, Java, PHP...) se présente ainsi :
for (initialisation ; condition ; incrémentation)
{

}


et tourne ainsi :
initialisation
si condition vraie, je rentre dans la boucle, sinon, j'en sors
incrémentation
si condition vraie, je rentre dans la boucle, sinon, j'en sors
incrémentation
si condition vraie, je rentre dans la boucle, sinon, j'en sors

Dans ton code :
initialisation : i prend la valeur 1
si condition vraie, je rentre dans la boucle, sinon, j'en sors : i 4 faux (puisque i a la valeur 1)> je sors de la boucle


Les 3 éléments de ton for sont optionnels :
for(;;)
{
}

est parfaitement valide

Ces 3 éléments sont indépendants :
for(int a 0; monTest() 0; i++)
{
}

marche également


PS : de manière générale, on a plutôt l'habitude de commencer les boucles à 0 en C#, notamment parce que les indices de tableau commencent à 0. Si tu veux afficher un tableau ayant 10 valeurs :
for (int i = 0; i < 10; i++)
{
    Console.WriteLine(monTableau[i].ToString());
}


Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -
0
Rejoignez-nous