2009-05-04 5 views
5

Ok j'ai une grande application CRUD qui utilise des onglets avec les formulaires noyés dans la masse comme si ->formulaire intégré dans un contrôle ou un formulaire de contrôle de l'utilisateur

public static void ShowFormInContainerControl(Control ctl, Form frm) 
    { 
     frm.TopLevel = false; 
     frm.FormBorderStyle = FormBorderStyle.None; 
     frm.Dock = DockStyle.Fill; 
     frm.Visible = true; 
     ctl.Controls.Add(frm); 
    } 

J'appelle alors le ci-dessous en cas de charge de formulaire du formulaire parent ->

// Embedd the child form in the this Parent 
     WinFormCustomHandling.ShowFormInContainerControl(pnlModuleHost, _frmWWCModuleHost); 

Cela m'a été donné à HERE en réponse à ma question précédente. Comme j'ai progressé dans ce domaine, je continue d'avoir le sentiment nauséabond que plusieurs couches de formulaires imbriqués sont une catastrophe qui attend de se produire et que les contrôles utilisateur continuent à apparaître. Quelqu'un peut-il me donner des conseils concrets sur l'utilisation des contrôles utilisateur par rapport à l'intégration de formulaires?

Voir ma question précédente pour l'inspiration de celui-ci. HERE

Vous pouvez également trouver une capture d'écran de l'aspect actuel de ma disposition de formulaire incorporé dans HERE.

Merci Vous

Répondre

2

Je voudrais utiliser un UserControl, son penser là-bas tout simplement, vous pouvez voir ce qui se passe dans le concepteur (si vous voulez), Form a un tas de choses dont vous n'aurez jamais besoin si vous allez l'utiliser comme une vue dans un conteneur .

Comparez ceci à votre méthode:

public static void DockControl(this Control control, UserControl userControl) 
      { 
       userControl.Dock = DockStyle.Fill; 
       control.Controls.Clear(); 
       control.Controls.Add(userControl); 
      } 
3

Mon point de vue est que ce ne sera probablement pas trop d'importance dans quelle direction vous choisissez. Je choisirais d'aller avec les contrôles utilisateur simplement parce que c'est l'approche la plus standard et vous permettrait une plus grande flexibilité à l'avenir. Par exemple, que se passe-t-il si votre client vient à vous et dit qu'il aimerait que deux onglets soient combinés en un seul onglet? Les contrôles utilisateur vous permettraient de regrouper ces deux contrôles sur un seul onglet sans se perdre en combinant les contrôles dans un seul formulaire, puis en le modifiant le mois prochain lorsque les besoins changeraient à nouveau.

Vous avez une application volumineuse et complexe qui comporte de nombreuses pièces qui, d'après ce que je comprends, doivent communiquer entre elles. Je pense que la question que vous devriez vous poser n'est pas "Formulaires ou contrôles utilisateur?". La question que vous devriez vous poser est: «Est-ce la bonne architecture pour cette application?

Je pense une conception qui intègre une architecture de type plug-in peut être plus approprié pour les nombreuses pièces mobiles que vous avez ... Ou vous pourriez jeter un oeil à des modèles de Microsoft et pratiques Composite Application Block (CAB)

+0

Intéressant, serait-il possible pour vous expliquer ce que vous entendez par l'architecture « plug-in de type »? Parlez-vous de l'abstraction de ce que les formes DO et ont différents UC interchangeables pour effectuer ces fonctions de base? –

+0

Voici un excellent article sur la conception de votre application autour d'une architecture extensible. http://www.code-magazine.com/Article.aspx?quickid=0801041 – Utensil

Questions connexes