Textbox en panne

Résolu
papijacques Messages postés 3 Date d'inscription samedi 3 février 2007 Statut Non membre Dernière intervention 18 octobre 2023 - Modifié le 14 oct. 2017 à 16:35
Whismeril Messages postés 19047 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 mai 2024 - 14 oct. 2017 à 20:10
Bonjour,

il m'est impossible de modifier par programme un textbox :
voici le code

void VerifierNom(object Sender, EventArgs Eve)
        {
            int Indice = Convert.ToInt32(((TextBox)Sender).Tag);
            int Place = TextJoueur[Indice].SelectionStart;

            TextBox TexteTest =  (TextBox)Sender;
            this.Text = Convert.ToString(Indice) + "  //  " + Convert.ToString(Place) + "  //  " + TextJoueur[Indice].Text + "  //  " + TexteTest.Text + " //  " + Convert.ToString(TexteTest.SelectionStart); .......



les données sont correctes pour "Sender" donc pour l'indice mais impossible d'avoir d'accès au textbox originel "TextJoueur" ni de le modifier alors que l'accès à "VerifierNom" est parfait, le this.text me servant de témoin.

c'est d'autant plus énervant que j'utilise cette routine dans d'autres programmes sans aucun problème

merci d'avance

EDIT : Ajout des balises de code (la coloration syntaxique).
Explications disponibles ici : ICI

Merci d'y penser dans tes prochains messages.

2 réponses

Whismeril Messages postés 19047 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 mai 2024 656
14 oct. 2017 à 14:10
Bonjour

t'es sûr que c'est du C++?
0
NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 159
14 oct. 2017 à 14:13
Déplacé en C#.
0
Whismeril Messages postés 19047 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 mai 2024 656
14 oct. 2017 à 16:03
oui mais j'espérais juste qu'il sache de lui-même dans quel langage il travaille....
Tu peux mettre un peu de couleur aussi s'il te plait?
0
NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 159
14 oct. 2017 à 16:35
Done :)
0
Whismeril Messages postés 19047 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 mai 2024 656
14 oct. 2017 à 19:56
Merci
0
Whismeril Messages postés 19047 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 28 mai 2024 656
Modifié le 14 oct. 2017 à 20:11
Bon tout d'abord,
            int Indice = Convert.ToInt32(((TextBox)Sender).Tag);//ici tu castes sender en Textbox
            int Place = TextJoueur[Indice].SelectionStart;

            TextBox TexteTest =  (TextBox)Sender;//ici tu castes encore sender en Textbox

Caster 2 fois la même variable sur 3 lignes est d'une part une répétition de code inutile, et d'autre part une perte de temps d'exécution.

            TextBox TexteTest =  (TextBox)Sender;
            int Indice = Convert.ToInt32(TexteTest.Tag);
            int Place = TextJoueur[Indice].SelectionStart;

Fera la même chose.

Ceci
 this.Text = Convert.ToString(Indice) + "  //  " + Convert.ToString(Place) + "  //  " + TextJoueur[Indice].Text + "  //  " + TexteTest.Text + " //  " + Convert.ToString(TexteTest.SelectionStart);

est une construction déconseillée, il est plus propre et plus facile (une fois qu'on a compris comment ça marche) de se servir de string.Format

this.Text = string.Format(@"{0} / {1} / {2} / {3} / {4}",Indice, Place, TextJoueur[Indice].Text, TexteTest.Text,TexteTest.SelectionStart);
. L'@ devant évite de doubler les /
Tu pourrais aussi faire un tableau de string et le joindre avec " / " comme séparateur.

Maintenant pour ton problème, tu n'as pas expliqué ce qu'est TextJoueur, enfin si tu as dit
textbox originel "TextJoueur"
, mais un Textbox ne peut pas être indicé, donc tu as donné une mauvaise explication.
Comme on ne peut pas deviner, pour t'aider il nous faut plus d'infos.


Quand j'étais petit, la mer Morte n'était que malade.
George Burns
0
Rejoignez-nous