IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

problème de conversion débutant dans windows form return


Sujet :

C#

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : chomeur
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Points : 0
    Points
    0
    Par défaut problème de conversion débutant dans windows form return
    Bonjour à tous,
    Je ne sais pas si je suis sur le bon post ou s'il faut que j'en ouvre un nouveau
    J'essaie de faire la chose suivante : un chiffre qui est multiplié par un autre et qui donne un résultat,
    à savoir que le lalbel2 est le multiplicateur point de départ = string que je transforme en une variable double valeur
    • que la listbox1 est le coefficient multiplicateur point de départ = string dans lequel à partir de la sélection de l'item serra multiplié par le label
    • que la textBox1 est le résultat point de départ = string qui recevra un double

    et tout cela par l'intermédiaire d'un bouton
    Si je lance mon programme je tombe direct sur le cas ou ça se passe mal c'est-à-dire MessageBox.Show("problème de conversion du chiffre");.
    Je ne comprends pas pourquoi return ne veut pas mon chiffre 0 pouvez-vous me dire pourquoi ? Ça me bloque et je me bute dessus.
    Si mon code est juste ou si je dois changer quelque chose merci beaucoup.
    J'ai copié ce code pour le label2 pour les vérifications.
    Je ferai la même chose pour ma listBox1 en l'incorporant dans un for i pour l'index.
    Mon raisonnement est-il juste ?



    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     private void button1_Click(object sender, EventArgs e)
            {
                string label2 = " ";        // chaîne de caractère vide
                string listBox1=" ";        // chaîne de caractère vide
                string textBox1 =" ";       // chaîne de caractère vide
                double valeur;              // initialisation de la variable de type double
     
     
     
                // condition de conversion je prend ma chaîne label2 que je transforme en décimal et la passe a valeur
                if (double.TryParse(label2, out  valeur))   
                {
                    if(label2==null) //si  dans le cas ou  label2 il n y a rien
                    {
                        return ;  // quand je met return 0 ; l ide visualStudio me souligne return en rouge me disant retourne void un mot clé return ne doit pas être suivi d'une expression objet
                    }
                    else            // si non
                    {
                        //la chaîne de caractère label2 renvoi un double a la variable valeur
                        valeur = double.Parse(label2.ToString());
                        return ;
                    }
                }
                // si non
                else
                {
                    // ouvre une boite de dialogue  disant problème de conversion
                    MessageBox.Show("problème de conversion du chiffre");
                }

  2. #2
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Je ne comprends pas pourquoi return ne veut pas mon chiffre 0 pouvez-vous me dire pourquoi ? Ça me bloque et je me bute dessus.
    Ta méthode est déclarée comme ne retournant rien avec le mot clé void, donc return n'acceptera rien.

  3. #3
    Nouveau Candidat au Club
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : chomeur
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    bonjour a tous

    j ai revue mon code mais j ai le probleme d affichage du resultat dans la textBox
    pourtant le compilateur ne crie pas au scandale
    il accepte et lit mon message d erreur de label, textBox et list box du else
    comme quoi il y a un problème
    je pensais que mon problème venait de mon booléen je l ai mis a true et false
    rien ni fait quelqu'un pourrait me filer un coup de main svp

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    private void button1_Click(object sender, EventArgs e)
            {
                string label2 = "4.00 ";
                string listBox1 = " ";
                string textBox1 = " ";
                double chiffre;
                double chiffre1;
                double chiffre2;
                bool reussi = true;
     
     
                if (reussi= double.TryParse(label2, out chiffre))
                {
                   ++ chiffre;
                }
                else
                {
                    MessageBox.Show("probleme dans label2");
                }
     
                if (reussi = double.TryParse(listBox1, out chiffre1))
                {
                    ++chiffre1;
                }
                else
                {
                    MessageBox.Show("probleme dans la listbox1");
                }
     
                if (reussi = double.TryParse(textBox1, out chiffre2))
                {
                    ++chiffre2;
                }
                else
                {
                    MessageBox.Show("probleme dans la textbox1");
                }
     
                chiffre2 = chiffre * chiffre1;
     
    }

  4. #4
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Essaie comme ceci.

    Voir aussi : https://stackoverflow.com/questions/...etween-i-and-i

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    private void button1_Click(object sender, EventArgs e)
    {
    	string label2 = "4.00";
    	string listBox1 = " ";
    	string textBox1 = " ";
    	double chiffre;
    	double chiffre1;
    	double chiffre2;
     
    	if (double.TryParse(label2, out chiffre))
    	{
    		++chiffre;
    	}
    	else
    	{
    		MessageBox.Show("probleme dans label2");
    	}
     
    	if (double.TryParse(listBox1, out chiffre1))
    	{
    		++chiffre1;
    	}
    	else
    	{
    		MessageBox.Show("probleme dans la listbox1");
    	}
     
    	if (double.TryParse(textBox1, out chiffre2))
    	{
    		++chiffre2;
    	}
    	else
    	{
    		MessageBox.Show("probleme dans la textbox1");
    	}
    	chiffre2 = chiffre * chiffre1;
    }

  5. #5
    Nouveau Candidat au Club
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : chomeur
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    re bonjour et merci du coup de main
    j'ai encore revu mon code
    le problème c'est que quand je met mon espion au niveau des double convertionChiffre1 et deux je vois bien que dans la listbox1 la sélection de l'item est enregistrer mais ne passe pas dans la partie de gauche c'est-à-dire convertionChiffre1 et pareil pour le 2 le résultat reste à zéro normal puisque je l'ai déclaré à zéro

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    private void button1_Click(object sender, EventArgs e)
            {
                try
                {
                    listBox1.Text = "0.00 ";   //LISTE multiplicateur 1.00 ,2.00 ,3.00 ,4.00 ,5.00 ,6.00 ,7.00 , exct........
                    label2.Text = "4.00 ";     // Coef multiplicateur fixe
                    textBox1.Text = "0.00 ";   // texBox recevant le resultat
     
                    double conVertionChiffre1 = Convert.ToDouble(listBox1);  // j essaie de convertir ma chaine de listeBox en double
                    double convertionChiffre2 = Convert.ToDouble(label2);    // j essai de convertir ma chaine du label en double
     
                    double resultat = conVertionChiffre1 * convertionChiffre2; // je multiplie mes deux double obtenue en resultat
     
     
                    if (double.TryParse(textBox1.Text,out resultat))           //si mon double est correct je le passe a ma textBox
                    {
                        resultat++;                                            // je l affiche dans la textBox
                    }
                    else                                                        // sinon
                    {
                        MessageBox.Show("probleme de convertion dans la textBox1"); // je montre une message d erreur
                    }
     
                }
                catch(Exception ex)                                                // genere une exception si sa se passe mal
                {
     
                }
    }
    Nom : Capture0000.JPG
Affichages : 170
Taille : 33,4 Ko

  6. #6
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    Même si je n'ai pas tout comprit au but je te propose ceci.

    Attention :
    - le séparateur décimal sur mon pc est la virgule (france) et pas le point, j'ai donc adapté.
    - label2 représente l'objet label et pas la valeur contenue dedans. Utilise les bonnes propriétés pour y accéder label2.Text

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    private void button1_Click(object sender, EventArgs e)
    {
        // https://docs.microsoft.com/fr-fr/dotnet/api/system.windows.forms.listbox.selecteditem?view=netframework-4.8
        // Trouve l'index de la valeur recherché
        int index = listBox1.FindString("0,00"); ; //LISTE multiplicateur 1,00 ,2,00 ,3,00 ,4,00 ,5,00 ,6,00 ,7,00 , exct........
        // Si l'index existe
        if (index != -1)
            // On le selectionne
            listBox1.SetSelected(index, true);
     
        label2.Text = "4,00 "; // Coef multiplicateur fixe
        textBox1.Text = "0,00 "; // texBox recevant le resultat
     
        try
        {
            double conVertionChiffre1 = Convert.ToDouble(listBox1.SelectedItem.ToString()); // j essaie de convertir ma chaine de listeBox en double
            double convertionChiffre2 = Convert.ToDouble(label2.Text); // j essai de convertir ma chaine du label en double
        }
        catch
        {
            // Si une erreur de convertion
            MessageBox.Show("Une erreur est survenue !", "Erreur", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
     
     
        double resultat;
        if (double.TryParse(textBox1.Text, out resultat)) //si mon double est correct je le passe a ma textBox
        {
            resultat++; 
            textBox1.Text = resultat.ToString();// je l affiche dans la textBox
        }
        else // sinon
        {
            MessageBox.Show("probleme de convertion dans la textBox1"); // je montre une message d erreur
        }
    }

  7. #7
    Nouveau Candidat au Club
    Homme Profil pro
    chomeur
    Inscrit en
    Mai 2013
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Tarn (Midi Pyrénées)

    Informations professionnelles :
    Activité : chomeur
    Secteur : Services de proximité

    Informations forums :
    Inscription : Mai 2013
    Messages : 4
    Points : 0
    Points
    0
    Par défaut
    bonjour et merci
    j ai trouver ma solution mais elle est incomplète car si je VALIDE mon bouton et que je n ai rien sélectionner le programme plante

    pour être plus clair, mon nombre ou listbox1,je veux qu'elle me prenne par défaut 0,00 et que ça me le multiplie par le coefMultiplicateur du label2
    dois je faire un for ou un if sur la listbox1 une piste peut être ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
       private void button1_Click(object sender, EventArgs e)
            {
     
                decimal nombre =0.0m;
                decimal coefMultiplicateur =0.0m;
                decimal resultat =0.0m;
     
                nombre = Convert.ToDecimal(listBox1.Text);
                coefMultiplicateur = Convert.ToDecimal(label2.Text);
     
                resultat = nombre * coefMultiplicateur;
                textBox1.Text = resultat.ToString();
     
            }

  8. #8
    Expert confirmé

    Homme Profil pro
    Responsable déploiement (SCCM, InTune, GPO)
    Inscrit en
    Juillet 2014
    Messages
    3 184
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Responsable déploiement (SCCM, InTune, GPO)
    Secteur : Transports

    Informations forums :
    Inscription : Juillet 2014
    Messages : 3 184
    Points : 5 755
    Points
    5 755
    Par défaut
    listbox1,je veux qu'elle me prenne par défaut 0,00
    Tu lit ce que l'on t'envoie ?
    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
        // Trouve l'index de la valeur recherché
        int index = listBox1.FindString("0,00"); ; //LISTE multiplicateur 1,00 ,2,00 ,3,00 ,4,00 ,5,00 ,6,00 ,7,00 , exct........
        // Si l'index existe
        if (index != -1)
            // On le selectionne
            listBox1.SetSelected(index, true);

Discussions similaires

  1. Problème API Analystics dans Windows Form C#
    Par onatake dans le forum C#
    Réponses: 3
    Dernier message: 03/02/2015, 15h59
  2. Login control dans Windows Forms
    Par débutant_C# dans le forum Windows Forms
    Réponses: 4
    Dernier message: 19/05/2008, 15h32
  3. Problème pour me logger dans windows
    Par _LVEB_ dans le forum Windows XP
    Réponses: 7
    Dernier message: 13/06/2007, 14h03
  4. problème d'une collection dans une form
    Par root76 dans le forum Struts 1
    Réponses: 12
    Dernier message: 19/04/2007, 16h22
  5. Problème de lecteur logique dans Windows XP
    Par olosta dans le forum Windows XP
    Réponses: 1
    Dernier message: 04/05/2006, 17h28

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo