Probleme textbox

Signaler
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
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

Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
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
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013

merci, moi je fesait avec des () mais c'est des []

merci merci
Messages postés
224
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
24 juillet 2013

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??
Messages postés
7741
Date d'inscription
mercredi 1 septembre 2004
Statut
Membre
Dernière intervention
24 septembre 2014
37
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
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
42
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é. -