Textbox en panne

Résolu
papijacques
Messages postés
2
Date d'inscription
samedi 3 février 2007
Statut
Membre
Dernière intervention
27 août 2018
- Modifié le 14 oct. 2017 à 16:35
Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
- 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.
A voir également:

2 réponses

Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
596
14 oct. 2017 à 14:10
Bonjour

t'es sûr que c'est du C++?
0
NHenry
Messages postés
14925
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
162
14 oct. 2017 à 14:13
Déplacé en C#.
0
Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
596
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
14925
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
162
14 oct. 2017 à 16:35
Done :)
0
Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
596
14 oct. 2017 à 19:56
Merci
0
Whismeril
Messages postés
17326
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
15 mai 2022
596
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