I noticed when overriding the Text property of the
System.Windows.Forms.UserControl that the Form.Designer file does not
reflect changes made via the property browser. In other words, when you
override the Text property and then try to change it's value at design-time,
the value is not serialized and therefore not available at run-time.
This problem does not appear to be language specific; I've reproduced it in
C# and in VB. Here are examples of what I've written:
In VB:
<System.ComponentModel.Browsable(True)> _
Public Overrides Property Text() As String
Get
Return lblTitle.Text
End Get
Set(ByVal value As String)
lblTitle.Text = value
End Set
End Property
In C#:
[System.ComponentModel.Browsable(true)]
public override string Text
{
get { return lblTitle.Text; }
set { lblTitle.Text = value; }
}
Can anyone explain to me what is happening and how I might correct the
problem?
Tim Wilson - 28 Feb 2006 22:04 GMT
Answer posted in the "microsoft.public.dotnet.framework" newsgroup.
http://groups.google.com/group/microsoft.public.dotnet.framework/browse_thread/t
hread/8cff4c7e257f556e/ce992f874f7c73f5?hl=en#ce992f874f7c73f5

Signature
Tim Wilson
.NET Compact Framework MVP
> I noticed when overriding the Text property of the
> System.Windows.Forms.UserControl that the Form.Designer file does not
[quoted text clipped - 26 lines]
> Can anyone explain to me what is happening and how I might correct the
> problem?
Bulle - 18 Apr 2006 14:55 GMT
Hello,
I'd the same problem as you with Compact Framework end VS 2005.
This is the solution :
Override the Text property (code should be like this one) :
public override string Text
{
get
{
return(base.Text);
}
set
{
base.Text = value;
this.Invalidate();
}
}
The right click on the usercontrol in the solution explorer, choose "View Class Diagram" and then display the class details view for the control.
In this view, you should see the "Text" property, edit the "Custom attributes" of the "Text" property.
And add the 4 lines listed below in the window appearing :
EditorBrowsable(EditorBrowsableState.Always)
Browsable(true)
DesignerSerializationVisibility(DesignerSerializationVisibility.Visible)
Bindable(true)
Recompile the project ... and you should see teh text property !!!