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

Windows Forms Discussion :

Probleme de methode


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Points : 12
    Points
    12
    Par défaut Probleme de methode
    Bonjour,

    Débutant en C# j'ai quelques problèmes au niveau de la syntaxe.

    Je voudrais créer une methode permettant de faire differents calculs selon le choix de la ComboBox.Les calculs sont des multiplications d'une textbox avec differentses variables.De plus je voudrais récuperer le résultat, non pas dans le formuliare ou les calculs ont lieu, mias dans un autre formulaire.

    J'ai écrit:

    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
     void Carburant()
            {
     
                int textBox10 = 0;
                int Res = 0;
                double d = 7.3;
                double d1 = 6;
     
                switch (ComboBox.SelectedIndex)
                {
                    case 1:
                        Res = textBox10 * d;
                        break;
                    case 2:
                        Res = textBox10 * d;
                        break;
     
                }
     
                label56.Show(Res.ToString());
     
            }

    Mais evidement ca ne marche pas.

    Pouvez vous m'aider?

    Merci.

  2. #2
    Membre habitué Avatar de salihovic
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Points : 135
    Points
    135
    Par défaut
    bonjour
    c'est normal que ça marche pas
    mais il faut bien spécifier ton besoin car vraiment j'ai rien compris
    sinon pour écrire une méthode qui calcule quelque chose puis afficher le résultat dans un form
    il suffit de faire une méthode qui retourne le résultat:
    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
     
    int Carburan()
    {
     int textBox10 = 0;
                int Res = 0;
                double d = 7.3;
                double d1 = 6;
     
                switch (ComboBox.SelectedIndex)
                {
                    case 1:
                        Res = textBox10 * d;
                        break;
                    case 2:
                        Res = textBox10 * d1;
                        break;
     
                }
    return (int)Res;
    }
    et puis pour l'affichage je suppose que la nouvelle forme s'appelle resultat et qu'elle contien un textBox public de nom ResultTXB
    alors on écrit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    resultat  newForm=new resultat();
    newForm.ResultTXB.Text=Carburan().ToString();
    newForm.Show();
    c'est écrit a la volé il manque des tests et tout sinon ça doit marcher...

  3. #3
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Je comprends le principe, mais j'ai toujours quelques erreurs.

    Notamment dans ma methode:

    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
     int Carburant()
            {
     
                int textBox10 = 0;
                int Res = 0;
                double d = 7.3;
                double d1 = 6;
     
                switch (ComboBox.SelectedIndex)
                {
                    case 1:
                        Res = textBox10 * d;
                        break;
                    case 2:
                        Res = textBox10 * d;
                        break;
     
                }
     
                return (int)Res;
     
            }
    J'ai l'erreur:

    Erreur 1 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'System.Windows.Forms.ListControl.SelectedIndex.get' C:\Documents and Settings\Propriétaire\mes documents\visual studio 2010\Projects\Helisecurite\Helisecurite\Form1.cs

    Et aussi dans l'affiche dans mon autre formulaire (F3)dans le label56:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    F3.Label56.Text = Carburant().ToString();
    J'ai l'erreur:

    Erreur 2 'WindowsFormsApplication1.Form3' ne contient pas une définition pour 'Label56' et aucune méthode d'extension 'Label56' acceptant un premier argument de type 'WindowsFormsApplication1.Form3' n'a été trouvée (une directive using ou une référence d'assembly est-elle manquante*?) C:\Documents and Settings\Propriétaire\mes documents\visual studio 2010\Projects\Helisecurite\Helisecurite\Form1.cs
    Je ne comprends pas?

    Merci beaucoup

  4. #4
    Membre averti
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2007
    Messages
    497
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 497
    Points : 330
    Points
    330
    Par défaut
    Tu as bien un label56 dans ton form?

  5. #5
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    Oui j'ai bien un label56 dnas mon form3, mias l'instruction

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    F3.Label56.Text = Carburant().ToString();
    Je l'ai mise dans l'action d'un bouton dans ma form1 est ce pour ca?

    Le probleme c'est que si je met cette instruction dans ma form3, je vais avoir des erreurs surla methode carburant qu'il ne reconnaitra pas, non?

  6. #6
    Membre habitué Avatar de salihovic
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Points : 135
    Points
    135
    Par défaut
    c'est quoi le textbox10???
    en plus as tu un label ayant le nom Label56 dans F3???
    si tu as bien un label ou un textbox il faut que tu le change en public pour que tu peux accéder depuis la forme appelante..
    en fin la méthode carburant ne fait rien
    il y a du n'importe quoi dedans
    si tu as un textbox qui s'appelle textbox10 et que tu veux que le résultat soit la multiplication de la valeur dans textbox10 avec la valeur sélectionné dans ta listbox(je te conseille d'utiliser un combobox) alors il faut récupérer l'index si c'est 1 alors tu multiplie par d sinon par d1
    alors il faut utiliser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    int.Parse(textbox10.text);
    (si c'est bien un int)

    donc si on récapitule...
    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
     
    int Carburant()
            {
     
                int textBox10 = 0;//si c'est un textbox c'est pas logique...
                int Res = 0;//résultat...
                double d = 7.3;//première valeur
                double d1 = 6;//deuxièmme valeur
     
                switch (ComboBox.SelectedIndex)
                {
                    case 1:
                        Res = (int)textBox10 * d;//on a ajouté (int) pour faire le casting car textbox10 est de type int et d est de type double..alors que res est de type int....
                        break;
                    case 2:
                        Res = (int)textBox10 * d1;//ici j'ai changé d par d1 car sinon on n'a pas interrêt a ce switch...
                        break;
     
                }
     
                return Res;//res est int donc on a pas besoin du casting...
     
            }
    pour le reste il faut just avoir un label56 qui est public il faut aller dans le designer est rendre ce label public c'est tt...

  7. #7
    Membre habitué Avatar de salihovic
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Points : 135
    Points
    135
    Par défaut
    pour que tu peut accéder à un attribut ou méthode depuis un autre classe il faut que ça soit public sinon tu peut pas sauf si c'est dans une inner class ou classe qui hérite...
    alors dans l'action de ton bouton il suffit d'appeler la méthode puis appliquer le résultat sur la propriété .Text du label.
    si le label est private tu ne peux pas le voir si tu tape f3. dans la liste déroulante.mais si c'est public alors tu va le voir.espérons que j'ai expliqué un peu....

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    D'accord je comprends mes erreurs, je vous remercie, j'ai rectifié le tir grace au dernier message.

    En revanche j'ai toujours une erreur sur le comboBox qui est dans le switch:

    Erreur 1 Une référence d'objet est requise pour la propriété, la méthode ou le champ non statique 'System.Windows.Forms.ListControl.SelectedIndex.get' C:\Documents and Settings\Propriétaire\mes documents\visual studio 2010\Projects\Helisecurite\Helisecurite\Form1.cs
    ??

    Merci

  9. #9
    Membre habitué Avatar de salihovic
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Points : 135
    Points
    135
    Par défaut
    ahh désolé j'ai commit un erreur
    l'indexe comence par 0 et pas par 1
    dans dans le switch:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     switch (ComboBox.SelectedIndex)
                {
                    case 0:
                        Res = (int)textBox10 * d;//on a ajouté (int) pour faire le casting car textbox10 est de type int et d est de type double..alors que res est de type int....
                        break;
                    case 1:
                        Res = (int)textBox10 * d1;//ici j'ai changé d par d1 car sinon on n'a pas interrêt a ce switch...
                        break;
     
                }

  10. #10
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    euh d'accord mais un probleme s'en va, un autre revient ^^

    j'ai la methode:
    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
     
      int Carburant()
            {
     
                int.Parse(textBox10.Text);
                int Res = 0;
                double d = 7.3;
                double d1 = 6;
     
                switch (comboBox1.SelectedIndex)
                {
                    case 0:
                        Res = (int) textBox10 * d;
                        break;
                    case 1:
                        Res = (int) textBox10 * d1;
                        break;
     
                }
     
                return Res;
     
            }
    et j'ai deux erreurs (les memes):

    Erreur 1 Impossible de convertir le type 'System.Windows.Forms.TextBox' en 'int' C:\Documents and Settings\Propriétaire\mes documents\visual studio 2010\Projects\Helisecurite\Helisecurite\Form1.cs 60 27 Helisecurite

  11. #11
    Membre habitué Avatar de salihovic
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Points : 135
    Points
    135
    Par défaut
    c'est trops normal
    car tu as un textbox!!! et tu veux avoir le contenu.
    je t'ai dis dès le début!!!
    alors je corrige et éspérons que ça marche bien
    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
     
    int Carburant()
            {
     
              int TextValue=  int.Parse(textBox10.Text);
                int Res = 0;
                double d = 7.3;
                double d1 = 6;
     
                switch (comboBox1.SelectedIndex)
                {
                    case 0:
                        Res = (int) (TextValue * d);
                        break;
                    case 1:
                        Res = (int) (TextValue* d1);
                        break;
     
                }
     
                return Res;
     
            }
    notmalement ça doit marcher sinon il y a quelque chose qui cloche!!!

  12. #12
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    cool, ca marche!!!!!

    Ca va aller mieux maintenant.

    Merci beaucoup pour votre aide.

  13. #13
    Membre habitué Avatar de salihovic
    Inscrit en
    Février 2007
    Messages
    255
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 255
    Points : 135
    Points
    135
    Par défaut
    de rien
    m'ai n'oubli pas la tag résolu...

  14. #14
    Membre à l'essai
    Profil pro
    Inscrit en
    Juin 2010
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2010
    Messages : 22
    Points : 12
    Points
    12
    Par défaut
    oki

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme de methodes ( debutant )
    Par pracede2005 dans le forum Langage
    Réponses: 4
    Dernier message: 18/04/2007, 15h56
  2. probleme accès methode statique
    Par jpsegret dans le forum Langage
    Réponses: 5
    Dernier message: 02/04/2007, 16h40
  3. [debutant] probleme avec methode virtuelle pure
    Par Treuze dans le forum Débuter
    Réponses: 10
    Dernier message: 21/04/2006, 13h58
  4. [JSF]Probleme de methode non trouvé
    Par VincentP dans le forum JSF
    Réponses: 1
    Dernier message: 12/10/2005, 18h43
  5. probleme avec methode get
    Par Tr@nkill dans le forum ASP
    Réponses: 2
    Dernier message: 12/05/2005, 14h54

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