c# - Custom MenuItemPanel (How add Items on Design Time?) -


the problem follows:

in user control have label list (list ) fills adding labels uc through "smart tag" (using designeractionmethoditem).

the problem works correctly when in design time, example, add 3 items @ design time, when test application these items disappear if had never added.

p.s.:

i have:

mycontrol class,

[designer(typeof(menuitempaneldesigner ))] public partial class menuitempanel : usercontrol {      private list<label> _listaitems;       public menuitempanel()     {         initializecomponent();     }       public list<label> listaitems     {                 {             if (this._listaitems == null)             {                 this._listaitems = new list<label>();             }             return this._listaitems;         }     }       public void agregaritem()     {         label nuevoitem = new label();         nuevoitem.text = "item " + this._listaitems.count;         nuevoitem.autosize = false;         nuevoitem.textalign = contentalignment.middlecenter;         nuevoitem.cursor = cursors.hand;         this.listaitems.add(nuevoitem);         this.controls.add(nuevoitem);         nuevoitem.dock = dockstyle.top;         nuevoitem.height = 50;     }   } 

mycontroldesigner class

class menuitempaneldesigner : system.windows.forms.design.controldesigner {      private designeractionlistcollection actionlists;      public override designeractionlistcollection actionlists     {                 {             if (null == actionlists)             {                 actionlists = new designeractionlistcollection();                 actionlists.add(new menuitempaneldesigneractionlist(this.component));             }             return actionlists;         }     }  } 

and mycontroldesigneractionlist

class menuitempaneldesigneractionlist : designeractionlist {      private menuitempanel colusercontrol;     private designeractionuiservice designeractionuisvc = null;      //the constructor associates control smart tag list.     public menuitempaneldesigneractionlist(icomponent component) : base(component)     {         this.colusercontrol = (menuitempanel)component;         this.designeractionuisvc = (designeractionuiservice)getservice(typeof(designeractionuiservice));     }      // implementation of abstract method creates smart tag  items,      // associates targets, , collects list.     public override designeractionitemcollection getsortedactionitems()     {         designeractionitemcollection items = new designeractionitemcollection();          //define static section header entries.         items.add(new designeractionheaderitem("items"));         items.add(new designeractionmethoditem(this,"agregaritem","agregar item"));           return items;     }      // metodos      public void agregaritem()     {         this.colusercontrol.agregaritem();     }  } 


Comments

Popular posts from this blog

windows - Single EXE to Install Python Standalone Executable for Easy Distribution -

c# - Access objects in UserControl from MainWindow in WPF -

javascript - How to name a jQuery function to make a browser's back button work? -