2010-06-14 10 views
5

En C#, en utilisant des winforms, quelle est la meilleure façon de faire se parler les formes? Envoi de données, de messages, de chaînes, de tout, de l'un à l'autre?Communication entre différentes formes

Délégués?

Des idées?

+1

Les formulaires fonctionnent-ils ensemble dans la même application/processus? La méthode la plus simple consiste à appeler la méthode d'un autre, à transmettre les données en tant que paramètre ou à définir la valeur de la propriété d'un autre. – ChrisW

+0

Oui, même application: P –

Répondre

6

Nous avons utilisé avec succès un élément appelé Event Pattern dans plusieurs applications Winform. Voici un bon link qui vous aidera à démarrer.

3

Vous pouvez créer des événements dans un formulaire, puis vous inscrire à ces événements dans l'autre formulaire. Vous pouvez également accéder aux propriétés d'un formulaire à l'autre. Par exemple peut-être dans le constructeur de la deuxième forme, vous passeriez une variable pour le premier formulaire.

Il semble que ce que vous cherchez sont des événements. Lorsqu'un événement se produit, tout délégué enregistré sera appelé. Il existe un tutorial on MSDN for events here.

+0

s'il vous plaît parlez-en plus si c'est possible ... Vous savez, j'ai besoin d'un article sur l'envoi et la réception de données entre winforms: comme formulaire principal et formulaire de recherche .... Merci – odiseh

1

tout dépend de ce que vous voulez communiquer.

Disons que ce sont des données de configuration; Vous pouvez créer une propriété statique dans le formulaire principal appelé Paramètres, ce qui expose votre objet. Tous les formulaires verront la même instance de paramètres et tous verront les modifications. Pour des crédits supplémentaires, vous pouvez implémenter INotifyPropertyChanged et déclencher un événement. De cette façon, toutes les formes qui regardent les paramètres seront notifiées si quelque chose a changé.