Appeler une fonction

Résolu
altozinzin Messages postés 54 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 6 mai 2011 - 26 juin 2010 à 23:53
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 - 28 juin 2010 à 11:39
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

cs_coq Messages postés 6349 Date d'inscription samedi 1 juin 2002 Statut Membre Dernière intervention 2 août 2014 101
27 juin 2010 à 00:32
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
*/
3
altozinzin Messages postés 54 Date d'inscription vendredi 14 mai 2004 Statut Membre Dernière intervention 6 mai 2011
27 juin 2010 à 09:44
OK ça marche très bien.


Merci de ta réponse ainsi que de tes conseils, j'applique tout de suite les modifications!!
0
krimog Messages postés 1860 Date d'inscription lundi 28 novembre 2005 Statut Membre Dernière intervention 14 février 2015 49
28 juin 2010 à 11:39
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é. -
0
Rejoignez-nous