2009-07-30 5 views
0

Ceci est mon scénario ... J'ai un tabControl winForm qui a une variété de champs sur chaque onglet (chaque onglet a des champs différents). Lorsque l'utilisateur clique sur le bouton 'Générer', il est supposé passer des contrôles à partir de l'onglet tabControl de sorte que la fonction appelée puisse créer un courrier électronique basé sur les informations du contrôle transmis. Chaque onglet est un modèle de courrier électronique différent. La méthode peut être appelée à partir de 4 boutons différents, chaque bouton étant sur une page tabControl différente et chaque tabControl ayant des champs différents. Le problème que j'ai est que je ne peux pas trouver un moyen décent d'appeler/passer ces contrôles. Comme on ne sait pas ce que le bouton tabControl est enfoncé avant l'exécution, j'essaie de créer une méthode abstraite pour accepter ces contrôles car chaque onglet a un ensemble de contrôles différent.C# WinForm; Passer un groupe de contrôles à une autre classe

Des idées?

Répondre

1

Comme quelqu'un a mentionné, vous pouvez tricher et essayer d'utiliser

tabControl.Controls 

pour une solution rapide et sale.

Si vous voulez quelque chose qui sera réalisable à l'avenir, ainsi que de vous exposer à de meilleures pratiques de conception, je suggère une alternative. Créez un EmailUserControlUserControl qui contient tous les champs de ce formulaire pour l'e-mail. Placez ce contrôle utilisateur sur l'onglet au lieu de tous les champs individuels. Ensuite, fournissez une méthode sur le contrôle de l'utilisateur qui génère l'e-mail souhaité avec tous les champs pris en compte, puis vous pouvez passer votre email actuel au lieu de toutes les pièces individuelles et les parties que vous pouvez utiliser pour le créer.

Bien sûr, d'autres améliorations sont disponibles sur ce modèle, mais c'est une excellente occasion de vous mettre les pieds dans l'eau et d'essayer quelque chose de mieux. À mesure que vous vous familiariserez avec l'idée de UserControl, vous reconnaîtrez d'autres possibilités d'améliorer la conception de vos commandes. :)

+0

Je m'étais confus en termes de design. J'avais créé une classe pour chaque onglet qui ferait office de «classe» pour les onglets. J'ai décidé de créer un contrôle utilisateur pour chaque onglet et de faire en sorte que la classe de contrôle de cet utilisateur agisse comme la classe que je viens de décrire. Merci pour l'aide! – user141594

+0

Génial! Heureux d'avoir pu aider. :) –

Questions connexes