[Résolu][C# .NET]UserControl hérité -> plantage du designer

UserControl hérité -> plantage du designer [Résolu][C# .NET] - C#/.NET managed - Programmation

Marsh Posté le 27-07-2006 à 17:33:05    

Salut à tous,
 
Sous VS 2005, j'ai codé quelque chose du style:
 
class A hérite de UserControl
class B hérite de A
 
J'aimerai ensuite pouvoir accéder à B via le designer comme pour un UserControl, mais une erreur est renvoyée:
 

Citation :

Une ou plusieurs erreurs ont été rencontrées lors du chargement du concepteur. Les erreurs sont répertoriées ci-dessous. Certaines erreurs peuvent être corrigées en régénérant votre projet, d'autres peuvent nécessiter des modifications du code.
 
à System.Reflection.Module.GetTypesInternal(StackCrawlMark& stackMark)
à System.Reflection.Assembly.GetTypes()
à Microsoft.VisualStudio.Shell.Design.AssemblyObsoleteEventArgs..ctor(Assembly assembly)
à Microsoft.VisualStudio.Design.VSDynamicTypeService.ReloadAssemblyIfChanged(String codeBase)
à Microsoft.VisualStudio.Design.VSDynamicTypeService.CreateDynamicAssembly(String codeBase)
à Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.get_Assembly()
à Microsoft.VisualStudio.Design.VSTypeResolutionService.AssemblyEntry.Search(String fullName, String typeName, Boolean ignoreTypeCase, Assembly& assembly, String description)
à Microsoft.VisualStudio.Design.VSTypeResolutionService.SearchProjectEntries(AssemblyName assemblyName, String typeName, Boolean ignoreTypeCase, Assembly& assembly)
à Microsoft.VisualStudio.Design.VSTypeResolutionService.GetType(String typeName, Boolean throwOnError, Boolean ignoreCase, ReferenceType refType)
à Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String name, Boolean throwOnError, Boolean ignoreCase)
à Microsoft.VisualStudio.Design.Serialization.CodeDom.AggregateTypeResolutionService.GetType(String name)
à System.ComponentModel.Design.DesignerHost.System.ComponentModel.Design.IDesignerHost.GetType(String typeName)
à System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.EnsureDocument(IDesignerSerializationManager manager)
à System.ComponentModel.Design.Serialization.CodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager manager)
à Microsoft.VisualStudio.Design.Serialization.CodeDom.VSCodeDomDesignerLoader.PerformLoad(IDesignerSerializationManager serializationManager)
à System.ComponentModel.Design.Serialization.BasicDesignerLoader.BeginLoad(IDesignerLoaderHost host)


 
La chose troublante est que le fichier contenant la classe B prend l'icone du UserControl car VS détecte l'héritage.
Si je fais: class B hérite de UserControl, je n'ai pas le problème.
 
Pensez-vous qu'il soit possible de profiter de la puissance du designer sur un fichier qui contient une classe qui hérite indirectement de UserControl ?


Message édité par jey350 le 01-08-2006 à 14:30:58
Reply

Marsh Posté le 27-07-2006 à 17:33:05   

Reply

Marsh Posté le 01-08-2006 à 13:46:11    

Sous VS.Net 2003, le designer ne comprenait pas l'héritage.
Sous 2005 je ne serait pas étonné qu'il en soit de même.
Merci MS de ne pas savoir ce que c'est que la programmation objet.

Reply

Marsh Posté le 01-08-2006 à 14:30:25    

En fait il s'agissait plutôt de moi qui ne comprenait pas l'héritage plutot que M$  :D  
 
Il est indispensable de créer un constructeur par défaut (çad sans arguments) pour la classe A.
 
Cela fonctionne donc parfaitement désormais, la classe B peut être conçue avec le designer.
 
Ils sont forts chez M$ finalement  :ange:

Reply

Marsh Posté le 01-08-2006 à 14:51:07    

_Mose_ a écrit :

Sous VS.Net 2003, le designer ne comprenait pas l'héritage.
Sous 2005 je ne serait pas étonné qu'il en soit de même.
Merci MS de ne pas savoir ce que c'est que la programmation objet.


alors là trop +1 quoi.
Un bien sale journée que celle ou j'ai découvert ça (mc++ sous vs2003)
 
(cela dit il parait qu'avec 2005 ca fonctionne maintenant, mais j'ai pas eu l'occasion d'essayer).

Message cité 1 fois
Message édité par _darkalt3_ le 01-08-2006 à 14:51:49
Reply

Marsh Posté le 01-08-2006 à 15:40:32    

_darkalt3_ a écrit :

alors là trop +1 quoi.

Cool, je croyais être le seul raleur :)

_darkalt3_ a écrit :

(cela dit il parait qu'avec 2005 ca fonctionne maintenant, mais j'ai pas eu l'occasion d'essayer).

Pareil. Du coup j'ai commencé à coder mon designer   :D  

Reply

Marsh Posté le 01-08-2006 à 15:46:09    

_Mose_ a écrit :

Cool, je croyais être le seul raleur :)


 
Non non :D (le GloP en question bosse chez ms redmond)
 

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed