2010-07-06 4 views
0

Je fais un projet dans une application C# windows avec un pattern MVC. En ce que j'ai besoin d'accéder aux contrôles du client Formulaire à ClientStatus Formez des idéesapplication Windows

+0

@closers et downvoters: Vous pouvez au moins laisser un commentaire. –

+0

@Henk, "Il est difficile de dire ce qui est demandé ici". Cela semble très spécifique au projet. –

+1

@Tim, je sais, mais il est évident que l'OP est nouveau ici, alors au moins lui dire ce qui ne va pas. –

Répondre

0

Puisque vous n'envoyez pas de code expliquant votre implémentation de MVC dans WinForms, je ne suis pas sûr de la façon dont vous instanciez et montrez les formulaires. Je suppose que vous appelez toujours des constructeurs quelque part dans votre propre code.

passer une référence au formulaire client lorsque le formulaire ClientStatus est créé (et créer un constructeur sur le formulaire ClientStatus d'accepter le formulaire client comme paramètre):

public class ClientForm : Form 
{ 
    public ClientForm() { } 
} 

public class ClientStatusForm : Form 
{ 
    ClientForm _parent; 

    public ClientStatusForm(ClientForm parent) 
    { 
     _parent = parent; 
    } 
} 
1

Si vous utilisez effectivement MVC votre Les formulaires ne doivent pas avoir besoin les uns des autres contrôles. Vos formulaires ne devraient même pas se connaître.

Veuillez mieux expliquer votre situation.

2

Vos formulaires tombent sous la partie V (vue) de MVC; ils ont seulement besoin de présenter des données à l'utilisateur et fournir des moyens d'interaction. Ils n'ont pas besoin de savoir ce que font les autres formes car elles sont gérées dans le contrôleur ...

La logique de réaction à l'interaction de l'utilisateur doit être contenue dans la partie C (contrôleur). Ainsi, dans votre exemple, le contrôleur répondra à l'entrée de l'utilisateur sur un formulaire pour mettre à jour l'état de l'autre formulaire.

En termes simples, votre contrôleur devrait instancier les formulaires, réagir aux événements sur le formulaire interactif et appeler les méthodes ou modifier les propriétés de l'autre formulaire pour le mettre à jour. La méthode que vous utilisez pour y parvenir dépend de la technologie que vous utilisez; Si vous utilisez WinForms, utilisez events and delegates. Si vous utilisez WPF alors vous devriez regarder dans data binding.