public class MyTextBox : TextBox { private string m_MyProperty; public MyTextBox { this.m_MyProperty = ""; // As an additional bonus, I'm showing you two ways to do color this.BackColor = System.Drawing.Color.FromArgb(90, 100, 240); this.ForeColor = System.Drawing.Color.Firebrick; ; } [DefaultValue("")] public string MyProperty { get {return this.m_MyProperty;} set {this.m_MyProperty = value;} } [DefaultValue(typeof(System.Drawing.Color), "90,100,240")] public override System.Drawing.Color BackColor { get { return base.BackColor; } set { base.BackColor = value; } } [DefaultValue(typeof(System.Drawing.Color), "Firebrick")] public override System.Drawing.Color ForeColor { get { return base.ForeColor; } set { base.ForeColor = value; } } }Setting some of these properties doesn't always work as you would expect
>Namespace frwFormObjects > Public Class clsLblFieldDesc > Inherits System.Windows.Forms.Label > Public Sub New() > Me.ForeColor = Color.CadetBlue > Me.Font = New Font("Arial", 10, FontStyle.Bold) > End Sub > End Class > > Public Class clsTxtBox > Inherits System.Windows.Forms.TextBox > Public Sub New() > Me.ForeColor = Color.CadetBlue > Me.Font = New Font("Arial", 15, FontStyle.Bold) > End Sub > End Class >End Namespace >>When the system is rebuilt, the classes show up in the project components tool box. I can drag the component on the form where all the properties come along for the ride. The properties overstay there welcome however, the properties for those objects also show up in the code.
> 'txtLastName > ' > Me.txtLastName.Font = New System.Drawing.Font("Arial", 11.0!, System.Drawing.FontStyle.Bold) > Me.txtLastName.ForeColor = System.Drawing.Color.CadetBlue > Me.txtLastName.Location = New System.Drawing.Point(98, 45) > Me.txtLastName.Name = "txtLastName" > Me.txtLastName.Size = New System.Drawing.Size(100, 24) > Me.txtLastName.TabIndex = 3 > ' >>Therefore, if I change a property in one of the above classes in namespace frwFormObjects, the change does not manifest on existing form objects after the rebuild because the form code overrides the properties of the class. I could delete all the code, but there must be a better way. How can I keep the code out of the form and have existing form objects inherit from the component after dragging the component out on the form.