2012-10-18 5 views
5

Ad esempio Voglio creare un usercontrol (modulo di Windows) che contiene un'etichetta e una casella di testo. E voglio esporre i due controlli secondari come proprietà, in modo che io possa impostare la proprietà del controllo secondario nella finestra di progettazione del modulo client.Come esporre l'intero controllo secondario di usercontrol su winforms designer

modo che il codice forse in questo modo:

 
public partial class LabelTextbox : UserControl 
    { 
     public LabelTextbox() 
     { 
      InitializeComponent(); 
     } 

     [ 
      Category("Appearance"), 
      Browsable(true), 
      Description("innerLabel") 
     ] 
     public DevComponents.DotNetBar.LabelX LabelPart 
     { 
      get 
      { 
       return this.labelx; 
      } 

      set 
      { 
       this.labelx = value; 
      } 
     } 


     [ 
      Category("Appearance"), 
      Browsable(true), 
      Description("InnerTextbox") 
     ] 
     public TextBox TextBoxPart 
     { 
      get 
      { 
       return this.textboxx; 
      } 

      set 
      { 
       this.textboxx = value; 
      } 
     } 
    } 

e poi posso vederlo in progettista, sembra che:

enter image description here

ma quando ho impostato proprietà etichetta interna del UserControl in designer, non può creare un codice di relazione nel designer.cs. ovvero le impostazioni del client non vengono salvate.

così come posso risolvere questo problema.

Tra l'altro io vengo da CN mio inglese è povero. Chiunque può rispondermi

risposta

6

decorare la proprietà dei vostri controlli figlio con la DesignerSerializationVisibility attributo:

[ 
    Category("Appearance"), 
    Browsable(true), 
    Description("innerLabel"), 
    DesignerSerializationVisibility(DesignerSerializationVisibility.Content) //<-- here 
] 
public DevComponents.DotNetBar.LabelX LabelPart { 
    get { 
     return this.labelx; 
    } 
    set { 
     this.labelx = value; 
    } 
} 
+0

Sì che ho bisogno. thks. – user1754971