Textbox en panne

papijacques 1 Messages postés samedi 3 février 2007Date d'inscription 14 octobre 2017 Dernière intervention - 14 oct. 2017 à 14:03 - Dernière réponse : Whismeril 10854 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 janvier 2018 Dernière intervention
- 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.
Afficher la suite 

6 réponses

Répondre au sujet
Whismeril 10854 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 janvier 2018 Dernière intervention - 14 oct. 2017 à 14:10
0
Utile
4
Bonjour

t'es sûr que c'est du C++?
NHenry 14041 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 20 janvier 2018 Dernière intervention - 14 oct. 2017 à 14:13
Déplacé en C#.
Whismeril 10854 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 janvier 2018 Dernière intervention - 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?
NHenry 14041 Messages postés vendredi 14 mars 2003Date d'inscriptionModérateurStatut 20 janvier 2018 Dernière intervention - 14 oct. 2017 à 16:35
Done :)
Whismeril 10854 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 janvier 2018 Dernière intervention - 14 oct. 2017 à 19:56
Merci
Commenter la réponse de Whismeril
Whismeril 10854 Messages postés mardi 11 mars 2003Date d'inscriptionContributeurStatut 22 janvier 2018 Dernière intervention - Modifié par Whismeril le 14/10/2017 à 20:11
0
Utile
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
Commenter la réponse de Whismeril

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.