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?
Answer posted in the "microsoft.public.dotnet.framework" newsgroup. http://groups.google.com/group/microsoft.public.dotnet.framework/browse_thread/thread/8cff4c7e257f556e/ce992f874f7c73f5?hl=en#ce992f874f7c73f5 -- Tim Wilson ..NET Compact Framework MVP "Jason Barnett" wrote in message news:e9PzWDIPGHA.3856@TK2MSFTNGP12.phx.gbl... > 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? > >
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 !!! --- Posted via www.DotNetSlackers.com