Souci de textbox

Résolu
Rapakooti Messages postés 90 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 18 mai 2018 - 29 juin 2012 à 19:12
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 - 30 juin 2012 à 13:49
Bonjour,
Je reviens a la prog apres un long arret alors je me lance dans une ... calculatrice lol
Mais voila j'ai un souci,
Je veux permutter les chiffres en positif negatif,avec l'ajout du symbole moins... mais cela ne marche pas
avez vous une idee merci

private void bsigne_Click(object sender, EventArgs e)
{
if (bsigne.Tag!="1")
{
textafficher.Text.Insert(0,"-");
bsigne.Tag = "1";
}
}

R A P A K O O T I

11 réponses

Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
29 juin 2012 à 20:26
Là tu affectes le résultat de remove à la textbox:
textafficher.Text = textafficher.Text.Remove(longueur-1,1); 


mais pas là:
textafficher.Text.Insert(0,"-"); 


Whismeril
3
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
29 juin 2012 à 19:28
Bonsoir

pourquoi ne pas multiplier le nombre par -1, quelque soit le signe tu auras l'inverse:

double nombre = Convert.ToDouble(textafficher.Text);
nombre *= -1;
textafficher.Text = nombre.ToString();


J'ai tapé de tête, la syntaxe est peut-être un peu fausse.

Pour tes prochains posts, voici les conseils de NHenry (surtout le point 2):

[list=ordered][*]Pour poser correctement une question et optimiser vos chances d'obtenir des réponses, pensez à lire le règlement CS, celui-ci pour bien poser votre question ou encore celui-ci pour les PFE et autres exercices[*]Quand vous postez un code, merci d'utiliser la coloration syntaxique (3ième icône en partant de la droite : )
[*]En VB.NET pensez à activer Option Explicit et Option Strict (propriété du projet) et à retirer l'import automatique de l'espace de nom Microsoft.VisualVasic (onglet Références dans les propriétés du projet).
[*]Si votre problème est résolu (et uniquement si c'est le cas), pensez à mettre "Réponse acceptée" sur le ou les messages qui vous ont aidés./list

Whismeril
0
Rapakooti Messages postés 90 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 18 mai 2018
29 juin 2012 à 19:52
Merci de la rapidité de la reponse , en fait , je modifiais la textbox par exemple pour la touche retour cela donne ca


private void bretour_Click(object sender, EventArgs e)
{
//Utilisation de la touche Retour , supprime le dernier caractere
if (textafficher.Text!="" )
{ string caracsupprime;
int longueur;
longueur = textafficher.TextLength;
caracsupprime=textafficher.Text.Remove (0,longueur-1);
textafficher.Text = textafficher.Text.Remove(longueur-1,1);
if (caracsupprime = ",")
bvirgule.Tag="0";

}
}

et donc je voulais ajouter visuellement le symbole -
pour apres gener les calculs mais je vais essaye comme ca merci

Par contre a tu une idée de "pourquoi cela ne fonctionne pas "??
merci de ton aide


R A P A K O O T I
0
Rapakooti Messages postés 90 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 18 mai 2018
29 juin 2012 à 19:57
Merci de la rapidité de la reponse , en fait , je modifiais la textbox par exemple pour la touche retour cela donne ca

[code=cs]
private void bretour_Click(object sender, EventArgs e)
{
//Utilisation de la touche Retour , supprime le dernier caractere
if (textafficher.Text!="" )
{ string caracsupprime;
int longueur;
longueur = textafficher.TextLength;
caracsupprime=textafficher.Text.Remove (0,longueur-1);
textafficher.Text = textafficher.Text.Remove(longueur-1,1);
if (caracsupprime = ",")
bvirgule.Tag="0";

}
}
[code]
et donc je voulais ajouter visuellement le symbole -
pour apres gener les calculs mais je vais essaye comme ca merci

Par contre a tu une idée de "pourquoi cela ne fonctionne pas "??
merci de ton aide


Desole j'avais pas vu tes conseil
R A P A K O O T I
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Rapakooti Messages postés 90 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 18 mai 2018
29 juin 2012 à 23:15
Merci bcp de ta réponse j'ai une derniere question se ratachant cela concerne la declaration de variable et la nomenclature

  private void bmemoire_Click(object sender, EventArgs e)
        {
            string memoire;
            if (bmemoire.Tag != "1")
            {
               
               memoire = textafficher.Text;
                bmemoire.Tag = "1";
            }
            if (bmemoire.Tag=="1" )
            {
                textafficher.Text = memoire;
                bmemoire.Tag = "0";
            }
        }


Cela me renvois une erreur
Erreur 3 Utilisation d'une variable locale non assignée 'memoire' E:\Dropbox\Programmation Csharp\Premier programme\Premierecalculatrice\Premierecalculatrice\Form1.cs 198 37 Premierecalculatrice
Alors que j'ai declaré la variable dans une procedure "parent" en amont comment fait pour l'utiliser dans une autre precedure conditionnelle?





R A P A K O O T I
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
29 juin 2012 à 23:42
Tu commences ton bloc par
string memoire;

Ce qui est équivalent à "oublie la variable memoire parente dans ce bloc et prends celle-là à la place".



Whismeril
0
Rapakooti Messages postés 90 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 18 mai 2018
30 juin 2012 à 00:03
Oui on est d accord mais justement il ne veut pas que je l utilisé dans le else qui est lui "enfant" et par la même occasion comment déclare une
Variable pour toute la forme ?
Merci vraiment de ton aide


R A P A K O O T I
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
30 juin 2012 à 08:36
Bonjour

en C#, déclarer une variable n'est pas l'assigner:

 private void bmemoire_Click(object sender, EventArgs e)
        {
            string memoire;//là tu déclares la variable pour le bloc bmemoire_Click uniquement,
                           //mais tu ne l'assignes pas la variable est donc null
            if (bmemoire.Tag != "1")
            {
               memoire = textafficher.Text; //là tu assignes la variable avec la valeur du textbox,
                                            //mais si le code du bloc est entier, elle ça ne servira à rien
                bmemoire.Tag = "1";
            }
            if (bmemoire.Tag=="1" )
            {
                textafficher.Text = memoire;// là tu tentes d'assigner memoire qui est null, au textbox.
                bmemoire.Tag = "0";
            }
        }


Si tu veux utiliser mémoire plus loin dans le code et surtout si tu veux utiliser le contenu "parent" de mémoire, il ne faut pas la déclarer à nouveau.

 private void bmemoire_Click(object sender, EventArgs e)
        {
            if (bmemoire.Tag != "1")
            {
               
               memoire = textafficher.Text;
                bmemoire.Tag = "1";
            }
            if (bmemoire.Tag=="1" )
            {
                textafficher.Text = memoire;
                bmemoire.Tag = "0";
            }
        }

Whismeril
0
Rapakooti Messages postés 90 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 18 mai 2018
30 juin 2012 à 09:49
Bonjour
Alors tout d'abord merci de tout le temps que tu prend

Je comprend parfaitement ce que tu m'explique,
dans ces cas la meme si faut evité je doit declaré la variable plus haut dans le programme, car si je l'assign en debut de procedure, il ne va pas tenir compte de mon tag et a chaque fois il va me réinitialise la variable .

On peut declare ou les variable utilisé dans plusieurs procedure et que l'on veut avoir constament sous la main :-)

R A P A K O O T I
0
Rapakooti Messages postés 90 Date d'inscription mercredi 4 décembre 2002 Statut Membre Dernière intervention 18 mai 2018
30 juin 2012 à 13:14
J'ai trouvé merci bcp de ton temps

R A P A K O O T I
0
Whismeril Messages postés 19024 Date d'inscription mardi 11 mars 2003 Statut Contributeur Dernière intervention 18 avril 2024 656
30 juin 2012 à 13:49
La portée des variables dépend des blocs compris entre {}.

dans une méthode la variable, elle n'existe qu'à partir de la ligne ou elle est déclarée, mais pas dans une classe.
Par exmple:



{
public class Toto

   private string tutu;
   
   public Toto()
     {
        //tutu et tâta existe ici
     }

  private string tata; 

}



Cependant d'un point de vue organisation, ça reste lus judicieux de déclarer toutes les variables au même endroit.

Whismeril
0
Rejoignez-nous