2009-09-22 9 views
3

Je veux créer mon propre contrôle personnalisé qui est fondamentalement un TableLayoutPanel avec 3 lignes et 1 colonne. Les lignes du haut et du bas contiendront des étiquettes (bannières) et la rangée du milieu est l'endroit où j'ajouterai d'autres contrôles. Le problème est que lorsque j'essaie de créer d'autres formulaires/contrôles à partir de ce contrôle, le concepteur ne reconnaît pas le panneau du milieu. Comment l'obtenir? Si je fais glisser une zone de texte au milieu et que je place Dock = Fill, cela couvrira le formulaire/contrôle entrie. De même, existe-t-il un moyen d'empêcher le concepteur de faire glisser les contrôles vers les lignes supérieure et inférieure (bannière)? J'ai essayé les étapes dans le lien suivant mais n'ai pas eu de chance (http://support.microsoft.com/?scid=kb%3Ben-us%3B813450&x=21&y=15).Comment créer un panneau de bannière en C#?

Répondre

3

Je l'ai compris. L'astuce consistait à créer mon propre concepteur qui hérite de ParentControlDesigner et remplace la méthode Initialize et appelle EnableDesignMode pour le panneau de contenu interne. En plus de cela, je devais définir l'attribut Designer de mon contrôle utilisateur à ce nouveau concepteur. Les détails sont affichés here.

Un problème, cependant. Je peux faire glisser les contrôles sur le panneau de contenu que j'ai créé et tout va bien. Mais, une fois que je recompile, les contrôles disparaissent. Ils sont toujours là, je pense juste qu'ils sont attirés devant le panneau de la bannière. Je vais créer un thread séparé pour ce problème.

Questions connexes