Appeler une fonction [Résolu]

Messages postés
54
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
6 mai 2011
- - Dernière réponse : krimog
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
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!
Afficher la suite 

Votre réponse

3 réponses

Meilleure réponse
Messages postés
6366
Date d'inscription
samedi 1 juin 2002
Dernière intervention
2 août 2014
88
3
Merci
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
*/

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 112 internautes nous ont dit merci ce mois-ci

Commenter la réponse de cs_coq
Messages postés
54
Date d'inscription
vendredi 14 mai 2004
Dernière intervention
6 mai 2011
0
Merci
OK ça marche très bien.


Merci de ta réponse ainsi que de tes conseils, j'applique tout de suite les modifications!!
Commenter la réponse de altozinzin
Messages postés
1863
Date d'inscription
lundi 28 novembre 2005
Dernière intervention
14 février 2015
36
0
Merci
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é. -
Commenter la réponse de krimog

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.