J'ai sous-classé Form
pour inclure des fonctionnalités supplémentaires, qui se résument à un List<Image>
qui s'affiche dans un ensemble de points prédéfinis sur le formulaire. Je donne les résultats suivants:Le formulaire sous-classé ne se comporte pas correctement en mode Designer (VS 2008)
public class ButtonForm : Form
{
public class TitleButton
{
public TitleButton() { /* does stuff here */ }
// there's other stuff too, just thought I should point out there's
// a default constructor.
}
private List<TitleButton> _buttons = new List<TitleButton>();
public List<TitleButton> TitleButtons
{
get { return _buttons; }
set { _buttons = value; }
}
// Other stuff here
}
Alors ma forme réelle que je veux utiliser est une sous-classe de ButtonForm
au lieu de Form
. Tout fonctionne très bien, Designer récupère même la nouvelle propriété et l'affiche sur la liste des propriétés. Je pensais que ce serait génial! Il a montré la collection, je pourrais ajouter les boutons là-bas et loin j'irais. J'ai donc ouvert l'éditeur de collection, ajouté dans tous les objets, et voici, assis là dans le concepteur était une image parfaite de ce que je voulais.
C'est là que ça commence à devenir moche. Pour une raison ou pour une autre, Designer refuse de générer du code pour créer les objets et les attacher à la collection, alors qu'en apparence, en mode Design, dès que je le compile et l'exécute, tout disparaît à nouveau et je suis de retour à la case un. Je suis complètement perdu quant à la raison pour laquelle cela arriverait; Si le concepteur peut le générer assez bien pour obtenir une image parfaite de mon formulaire avec le comportement supplémentaire, pourquoi ne peut-il/ne va-t-il pas générer le code dans le fichier de code réel?
Eh bien, c'était incroyablement simple ... Merci beaucoup. Vous semblez être mon sauveur personnel dernièrement: D –
Quelque chose m'énerve encore à ce sujet ... Si on doit lui dire que c'est un composant avec lequel il peut travailler, pourquoi cela fonctionnera-t-il de toute façon et ensuite seulement pas écrire de code? –