|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | |
|
Membre à l'essai
![]() Développeur informatique Inscription : août 2004 Messages : 44 ![]() |
Bonjour à toutes et à tous,
Je souhaiterais créer une fenêtre MDI de base avec un menu de base (Fichier > Quitter, Fenêtre > Réorganiser, Aide > A propos de) pour ensuite en hériter dans mes autres projets afin d'avoir une structure commune partout. Seulement, le designer ne veut pas que j'ajoute de nouveaux éléments de menu dans ma fenêtre héritée : Citation:
Une idée sur ce comportement ? Il n'y a vraiment pas moyen de faire d'héritage de MainMenu ? Merci. |
|
|
|
00
|
|
|
#2 | ||
|
Membre Expert
![]() mebarek Inscription : avril 2008 Messages : 828 ![]() |
bonjour loki9481
Ce comportement est semblable à celui d'un UserControl car un formulaire herite qu'il soit MDI ou non se comporte de la meme mainiere . La technique pour surmonter ce probleme est de "wrapper" les proprietes qu'on veut acceder -une à une- du control depose sur le form MDI par des prop dans le formulaire MDI comme cela se fait pour un UserControl. Dans ton cas il suffit de "wrapper" la prop MenuItems de MainMenu dans une simple prop publique de ton form MDI avec un attribut "browsable" pour la voir dans le designer apres avoir cree le form herite....... exemple code: Code :
|
||
|
|
00
|
|
|
#3 | |||
|
Membre à l'essai
![]() Développeur informatique Inscription : août 2004 Messages : 44 ![]() |
Citation:
Malgré tout, je ne comprends toujours pas pourquoi il est impossible, de base, de ne pas pouvoir modifier un menu par héritage, même en déclarant les objets Protected ou Public Désolé d'insister, mais j'aime comprendre le pourquoi du comment... |
|||
|
|
00
|
|
|
#4 |
|
Membre Expert
![]() mebarek Inscription : avril 2008 Messages : 828 ![]() |
bonjour loki9481
WinForm ou UserControl ou Panel derivent de Control Container . Ce sont des Container universels ce qui les rends capables de contenir une collection de control de tout type.(me.controls.add().....hein) TabControl egalement mais bride ,il n'accepte que des conrols TabPpage ou MainMenu. Tel n'est pas le cas de Button ou Llabel ou TextBox. Le fait qu'un autre control soit heberge dans un container se fait par une declarationde simples variables et l'ajout à sa collecion Controls Cela & n'en fait pas une prop du container et c'est important vis-vis du Designer VS. Le Designer VS heberge (hoste) le control container racine, serialize et deserialise (en utilisant la Reflection) uniquement les prop declares dans le container racine et les affichent ..... Pourquoi cette limitation?.... Simplement parce que Mabrouki ou bien ouloki9481 qui sont des gens avises et utilisent l'API à outrance se sont mis en tete de creer un UserControl Container qui contient un autre Container Panel lequel contient un TabControl lequel contient un autre Panel lequel contient ..............j'arrete la... Le Designer VS a ete limite expres laissant au developpeur le soin de choisir les controls ou sous-sous -controls(et leur props) qu'il veut exposer comme proprietes dans le designer... Deja de base les proprietes heritees de control pour un winform ou un MainMenu contituent-je m'excuse du terme- une diarrrhee dans le Propertygrid du Designer et laissent perplexe plus d'un... bon code................ |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com