OVH Cloud OVH Cloud

Encore une question :

1 réponse
Avatar
amplitude
re-bonjour,

Dans une form, je clique sur un bouton pour fairte appara=EEtre un popup,=
=20
jusque l=E0, rien de grave, dans mon popup je cr=E9er une nouvelle entr=E9=
e=20
dans ma base de donn=E9e, et quand je la valide, le popup se referme et l=
=E0=20
o=F9 je coince, c'est que je voudrait que la liste qui se trouve dans la =

premiere form s'actualise, mais je veux pas mettre la fonction=20
UpdateListe en static...

En fait, j'aimerai faire =E7a, mais =E7a ne fonctionne pas :

public static void UpListe()
{
UpdateListe();
}

private void UpdateListe()
{
...
}

1 réponse

Avatar
Paul Bacelar
Tu as plein de moyens, plus ou moins élégants en fonction de l'architecture
générale de ton application.

Pour éviter un static (très bon réflexe), tu peu toujours passer une
référence à l'objet contenant ta méthode UpdateListe comme paramètre du
constructeur de ta popup.

Tu pourras appeler sa méthode le moment venu.



Mais, vu de loin, je pense que l'utilisation d'Events serait bien plus
efficace.

Dans ton formulaire principal, tu enregistres un delegate sur un événement
qui se déclenche lors de la mise de la base de donnés. L'évènement serait,
par exemple, un événement d'un objet GestionnaireDB. GestionnaireDB serait
utilisé par ta popup et, sur chaque modification de la base de donné,
déclencherait l'événement (c'est GestionnaireDB qui déclenche, encapsulation
rules ;-) ).

Tu auras un code beaucoup plus maintenable et élégant.

Par exemple, si tu à un nombre important de formulaire à mettre à jour en
même temps, tu n'auras qu'à ajouter l'enregistrement d'un delegate dans le
constructeur de chaque formulaire et tu pourra toujours gérer les mises à
jour de la base et cela d'où que vienne cette modification.

Attention au multi-threading et les limitations des composants graphiques
avec les delegate. Invoke sera un allié non négligeable.
--
Paul Bacelar
Demandeur d'emploi


"amplitude" wrote in message
news:chc93s$1mr$
re-bonjour,

Dans une form, je clique sur un bouton pour fairte apparaître un popup,
jusque là, rien de grave, dans mon popup je créer une nouvelle entrée
dans ma base de donnée, et quand je la valide, le popup se referme et là
où je coince, c'est que je voudrait que la liste qui se trouve dans la
premiere form s'actualise, mais je veux pas mettre la fonction
UpdateListe en static...

En fait, j'aimerai faire ça, mais ça ne fonctionne pas :

public static void UpListe()
{
UpdateListe();
}

private void UpdateListe()
{
...
}