Problem with IDE when overriding Text property

J

Jason Barnett

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?
 
J

Jason Barnett

Thanks! That really helps.


Tim Wilson said:
You'll need to add some more attributes. See the example at the link
below.
http://groups.google.com/group/microsoft.public.dotnet.languages.csharp/msg/e3089235cb94cfe5?hl=en

--
Tim Wilson
.NET Compact Framework MVP

Jason Barnett said:
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?
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Top