Appeler une fonction [Résolu]

Signaler
Messages postés
54
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
6 mai 2011
-
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
-
Salut à tous, j'ai une nouvelle fois besoin de votre, pour quelquechose de très simple mais pour lequel je ne connais pas le vocabulaire exact et donc pour laquelle je ne trouve pas de docu...

En gros, j'ai une fonction (si ça s'appelle bien comme ça) textBox1_TextChanged qui se charge d'effectuer une recherche SQL. Jusque là pas de problème.


J'ai aussi une fonction comboBox_SelectedIndexChanged qui doit executer la même chose que textBox1_TextChanged, donc pour éviter de réécrire les lignes de codes, je voulais appeler la fonction textBox1_TextChanged au sein du comboBox6_SelectedIndexChanged mais j'y arrive pas

Voila ce que j'ai essayé de faire après quelque recherche mais ça ne fonctionne pas(ça semblait pourtant 'logique')



 public void textBox4_TextChanged(object sender, EventArgs e)
            {

                label1.Text = "coucou";
            }

  private void comboBox6_SelectedIndexChanged(object sender, EventArgs e)
        {
          textBox4_TextChanged();

        }
      



Thanks a lot!

3 réponses

Messages postés
6351
Date d'inscription
samedi 1 juin 2002
Statut
Modérateur
Dernière intervention
2 août 2014
92
Salut,

La méthode textBox4_TextChanged (au passage, il vaut mieux donner de vrais noms aux contrôles) attendant 2 paramètres, je vois difficilement comment elle pourrait être appelée sans lui en passer le moindre.

Sinon, pour essayer d'avoir un code relativement propre et maintenable, on évite d'appeler les méthodes qui servent de gestionnaire d'évènement.
On ne s'attend généralement pas à ce que ce type de méthode soit appelée par autre chose que la levée de l'évènement.

Et comme il est bien entendu hors de question de réécrire le code (ni même de le dupliquer), il suffit de faire une méthode qui sera appelée par les 2 gestionnaires d'évènement :

public void textBox4_TextChanged(object sender, EventArgs e)
{
  this.DoSomething();
}

private void comboBox6_SelectedIndexChanged(object sender, EventArgs e)
{
  this.DoSomething();
}

private void DoSomething()
{
  label1.Text = "coucou";
}



/*
coq
MVP Visual C#
CoqBlog
*/
Messages postés
54
Date d'inscription
vendredi 14 mai 2004
Statut
Membre
Dernière intervention
6 mai 2011

OK ça marche très bien.


Merci de ta réponse ainsi que de tes conseils, j'applique tout de suite les modifications!!
Messages postés
1860
Date d'inscription
lundi 28 novembre 2005
Statut
Modérateur
Dernière intervention
14 février 2015
44
Juste une petite remarque par rapport à ta question.

Comme l'a dit Coq, sans insister dessus, le vocabulaire à employer est méthode et non fonction.

La différence est qu'une méthode se trouve dans une classe ou dans une structure, contrairement à une fonction, qui est totalement indépendante. En C#, il n'est tout simplement pas possible de faire des fonctions. Il ne s'agit que de méthodes. De manière plus générale, en POO (Programmation orientée objet), on n'utilisera quasiment que des méthodes.

Krimog : while (!(succeed = try())) ;
- Nous ne sommes pas des décodeurs ambulants. Le style SMS est prohibé. -