Se connecter / S'enregistrer
Votre question

Problème tout con en C#

Tags :
  • Programme
  • Programmation
Dernière réponse : dans Programmation
3 Novembre 2006 18:11:09

Bisoir !

Sachez avant tous que je "débute" en programmation !

J'ai un petit souci en C#, un truc vraiment tout con que j'arrive pas et sa m'énèrve >___<

J'ai créé un petit programme dans le principe de la calculatrice...

Pour "l'écran", j'ai fais un textbox, et les touches sont évidemment des boutons (plus précisément un tableau de bouton qui se génère au Load du programme)

J'arrive à faire afficher le chiffre correspondant au bouton pressé, mais lorsque je clique sur 2boutons a la suite (pour écrire un nombre supérieur à 9) ben... il m'efface le premier pour m'afficher que le deuxième... et j'arrive pas à faire en sorte qu'il m'affiche les 2 à la suite dans le textbox >__<

  1. private void btnClick(object sender, System.EventArgs e)
  2. {
  3.  
  4. for (intLi = 0; intLi < 3; intLi++)
  5. {
  6. for (intCol = 0; intCol < 3; intCol++) //Parcours le tableau
  7. {
  8. if (sender.Equals(tabGrille[intCol, intLi]))
  9. //Zone de travail avec le bouton cliqué
  10. {
  11. // bouton pressé trouvé
  12. intValBtn = Convert.ToInt32(tabGrille[intCol, intLi].Text);
  13. //Insère dans la variable "intValBtn" le nom du bouton (correspondant au chiffre de la calculatrice) converti de string en int.
  14. // MessageBox.Show("Bouton " + intValBtn); (vérification que la touche pressée correspond bien au chiffre voulu)
  15. this.txtEcran.Text = Convert.ToString(intValBtn);
  16.  
  17. }
  18.  
  19.  
  20. }
  21. }


Voilà la partie du code où il faudrai insérer la fonction permettant d'affichier + d'1 chiffre à la suite... je suis preneur de toute les propositions faite !

Merci d'avance pour votre aide :) 

>Un débutant en programmation<

Autres pages sur : probleme con

a b L Programmation
3 Novembre 2006 19:31:38

Et oui, c'est e que tu fais: quand tu appuis sur une touche, tu mets cette valeur en modifiant le texte de l'affichage (et donc en remplaçant de ltexte de l'affichage).
Tu dois concaténer l'affichage existant avec ta chaine.

Donc remplace cette ligne:
  1. this.txtEcran.Text = Convert.ToString(intValBtn);


par:
  1. this.txtEcran.Text = this.txtEcran.Text + Convert.ToString(intValBtn);


ou plus simplement:
  1. this.txtEcran.Text += Convert.ToString(intValBtn);

3 Novembre 2006 20:44:16

Je l'ai fais, et enfait, je me rend compte que le problème "principal" ne vient pas de là...

Mais du fait qu'il me fait les 2 d'un coups si je fais ce que tu m'as dis (j'y avais déjà pensé)

Résultat, si j'appuis par exemple sur la touche 6, il va m'afficher "66" ... (et si j'appuie par la suite sur 8 par exemple, il va remplacer le 66 par le 88)
Contenus similaires
a b L Programmation
3 Novembre 2006 22:01:03

Si tu fais +=, ça ne doit pas effacer ce qu'il y avait avant. Si ça met plusieurs chiffre c'est un autre problème, mais ça ne doit rien effacer, si ça s'efface c'est ailleurs.

Je vois que tu as mis ce code pour le clic d'un bouton, est-ce que tu as fait la correction pour les 2 boutons ? Si c'est la même méthode utilisée pour les 2 handlers, es-tu sûr que tu ne modifie pas this.txtEcran.Text autre part ?
4 Novembre 2006 10:44:46

Je comprend pas ce que tu entends par "est-ce que tu as fait la correction pour les 2 boutons ?"

Sinon, c'est bien la même métode qui est utilisée pour tous les boutons du tableau, et je suis sur que mon this.txtEcran.Text est modifié nul par ailleur...

Après quelques essais, je peux préciser un peu plus le problème !
Enfait, quand je clique sur un bouton, le programme me l'affiche, mais, au lieu d'attendre qu'un deuxième bouton soit cliqué pour affichier son contenu en concaténation avec le premier, il me met directement le deuxième... (ce qui me donne donc comme résultat "11" ou "22" par exemple)...

En espérant avoir été plus clair ^^
a b L Programmation
4 Novembre 2006 11:49:51

Je suis désolé mais:
- si tu as bien créé sur chaque bouton (sur le [...].Click += new System.EventHandler(this.btnClick);) un nouvel handler en utilisant cette fonction.
- si tu as bien ajouté le controle
- si tu as bien mis une [...].Text += [...] dans la fonction
- si tu n'as aucun [...].Text = [...]
alors tu ne peux pas avoir un tel comportement : tu ne peux pas passer de "1" à "22" en ckliquant sur 1 puis sur 2.

5 Novembre 2006 11:08:32

hmmm... j'vais essayer autrement, j'ai une petite idée ! :) 

Merci !
Tom's guide dans le monde
  • Allemagne
  • Italie
  • Irlande
  • Royaume Uni
  • Etats Unis
Suivre Tom's Guide
Inscrivez-vous à la Newsletter
  • ajouter à twitter
  • ajouter à facebook
  • ajouter un flux RSS