0

J'ai un ASP-UserControl QuestionWithAnswer (.ascx) : BaseQuestion : UserControl et un ControlDesigner QuestionDesigner : UserControlDesigner. Maintenant, j'utiliser le DesignerAttribute associer le contrôle et designer:Visual Studio utilise UserControlDesigner au lieu de CustomDesigner

[Designer(typeof(QuestionDesigner))] 
public class BaseQuestion : UserControl 

tous les types sont dans le même ensemble (WEB Application). Mais il charge toujours UserControlDesigner au lieu de la mienne. Ai-je dû mettre mon concepteur dans un ensemble séparé? Je suppose que le concepteur de pages ASP ne peut pas trouver le concepteur.

thx! mo


Code de démonstration:

public class FragenDesigner : UserControlDesigner 
{ 
    private DesignerActionList _actionList; 
    private DesignerVerb[] _verbs; 

    public override DesignerActionListCollection ActionLists 
    { 
     get 
     { 
      if (_actionList == null) 
      { 
       _actionList = new DesignerActionList(new System.Windows.Forms.TextBox()); 
       _actionList.AutoShow = true; 


       ActionLists.Add(_actionList); 
      } 
      return base.ActionLists; 
     } 
    } 

    public override DesignerVerbCollection Verbs 
    { 
     get 
     { 
      if (_verbs == null) 
      { 
       _verbs = new DesignerVerb[] 
         { 
          new DesignerVerb("test", onblabla), 
         }; 

       Verbs.AddRange(_verbs); 
      } 

      return base.Verbs; 
     } 
    } 

    private void onblabla(object sender, EventArgs e) 
    { 
     MessageBox.Show("blabla"); 
    } 
} 

Répondre

1

ok il y a déjà une réponse: http://msdn.microsoft.com/en-us/library/system.web.ui.design.usercontroldesigner.aspx.

Remarques

Il n'y a aucun avantage de développeur pour créer votre propre concepteur dérivé de UserControlDesigner. Pour améliorer l'expérience de conception pour un contrôle personnalisé , dérivez votre contrôle de CompositeControl et votre concepteur de CompositeControlDesigner. Dans ce cas, vous n'utiliserez pas un fichier .ascx pour votre balisage ASP.NET.

Dans mon cas, il est impossible de passer à CompositeControls. Faites-moi confiance, je préfère Composite/WebControls ...

Questions connexes