2013-10-04 12 views
5

Così oggi ho deciso di creare un controllo TextButton personalizzato in C# utilizzando Visual Studio 2012. Mi piace molto il design che ho realizzato, per quanto semplice possa essere. Tuttavia, quando ho deciso di spostare il componente completato in un modulo utilizzando Visual Studio Designer, ho trovato un problema. Sebbene la proprietà Text venga visualizzata nell'elenco delle proprietà, la proprietà non viene effettivamente modificata nel file MainWindow.Designer.cs. Di seguito è riportato il codice che definisce la proprietà:UserControl mostra la proprietà in Visual Studio Designer, ma la proprietà non viene modificata

[Category("Appearance")] 
[Description("The text displayed by the control.")] 
[Browsable(true), EditorBrowsable(EditorBrowsableState.Always)] 
public override string Text 
{ 
    get 
    { 
     return Button.Text; 
    } 
    set 
    { 
     Button.Text = value; 
    } 
} 

E qui è il codice che il mio file MainWindow.Designer.cs sta creando nel metodo InitializeComponent:

this.Open = new UI.Controls.TextButton(); 
this.Open.Location = new System.Drawing.Point(9, 3); 
this.Open.Name = "Open"; 
this.Open.Size = new System.Drawing.Size(112, 28); 
this.Open.TabIndex = 4; 
this.Open.Click += new System.EventHandler(this.OpenButton_Click); 
+0

È un controllo utente o un controllo personalizzato, in breve si eredita da Button. –

+0

Si tratta di un controllo utente con un oggetto System.Windows.Forms.Button inserito nel mezzo per rilevare l'intera visualizzazione del controllo. – NoahWillCrow

risposta

5

Parte del problema è che si ignorano la proprietà UserControl'sText. Se il nome della proprietà è un altro nome oltre a Text come myText funzionerà. Per risolvere il problema, utilizza Text e prova ad aggiungere l'attributo DesignerSerializationVisibility alla tua proprietà, che dovrebbe occuparsene.

[DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)]