Problème avec delegate [Résolu]

Messages postés
38
Date d'inscription
mardi 20 mai 2008
Dernière intervention
2 septembre 2017
- 13 juin 2012 à 14:06 - Dernière réponse :
Messages postés
38
Date d'inscription
mardi 20 mai 2008
Dernière intervention
2 septembre 2017
- 13 juin 2012 à 15:35
Bonjour
J'ai un richTextBox et un bouton, je passe un nombre en parametre et s'il est divisible par 3 ou 5, "Divisible" s'écrit à chaque fois sur le richtextBox...C'est trés simple; mais je veux volontairement compliquer et utiliser un délégué...
Problème rien ne s'affiche ...Pourquoi?
Merci pour vos éventuelles réponses

using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        public class methodes
        {
            Form1 f = new Form1();
          public void methode1(string s,int nombre)
          {    
             if (nombre%3==0) f.richTextBox1.AppendText(s);    
          }

          public void methode2(string s,int nombre)
          {
            if (nombre%5==0) f.richTextBox1.AppendText(s);
          }      
        }

        public class evenement
        {
            public delegate void appel(string s, int nombre);
            public appel choix;  
        }

        private void button1_Click(object sender, EventArgs e)
        {
            evenement ev = new evenement();
            methodes m = new methodes();     
           ev.choix = m.methode1;
           ev.choix += m.methode2;
           ev.choix("Divisible",165);        
        }
        }            
        }
Afficher la suite 

Votre réponse

2 réponses

Meilleure réponse
Messages postés
1471
Date d'inscription
mardi 5 février 2002
Dernière intervention
20 octobre 2014
- 13 juin 2012 à 15:12
3
Merci
dans ta classe methode, tu travailles dans un "new form1", donc pas dans le form1 du bouton, mais dans un deuxieme objet.

using System.Windows.Forms;

namespace WindowsFormsApplication1
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        
        public class methodes
        {
           Form1 f;
            public methodes(Form1 frm)
            {
                f = frm;
            }

          public void methode1(string s,int nombre)
          {    
             if (nombre%3==0) f.richTextBox1.AppendText(s);    
          }

          public void methode2(string s,int nombre)
          {
            if (nombre%5==0) f.richTextBox1.AppendText(s);
          }      
        }

        public class evenement
        {
            public delegate void appel(string s, int nombre);
            public appel choix;  
        }

        private void button1_Click(object sender, EventArgs e)
        {
            evenement ev = new evenement();
            methodes m = new methodes(this);     
           ev.choix = m.methode1;
           ev.choix += m.methode2;
           ev.choix("Divisible",165);        
        }
        }            
        }




un truc comme ca devrait fonctionner


BasicInstinct

Merci BasicInstinct 3

Avec quelques mots c'est encore mieux Ajouter un commentaire

Codes Sources a aidé 88 internautes ce mois-ci

Commenter la réponse de BasicInstinct
Messages postés
38
Date d'inscription
mardi 20 mai 2008
Dernière intervention
2 septembre 2017
- 13 juin 2012 à 15:35
0
Merci
Merci
Commenter la réponse de mecyber25

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.