>Imports Microsoft.VisualBasic >Imports System.ComponentModel > >Public Class MyTextBox > Inherits TextBox > > Private m_MyProperty As String > > <DefaultValue("")> _ > Public Property MyProperty() As String > Get > Return Me.m_MyProperty > End Get > Set(ByVal value As String) > Me.m_MyProperty = value > End Set > End Property > > <DefaultValue(GetType(System.Drawing.Color), "90,100,240")> _ > Public Overrides Property BackColor() As System.Drawing.Color > Get > Return MyBase.BackColor > End Get > Set(ByVal value As System.Drawing.Color) > MyBase.BackColor = value > End Set > End Property > > <DefaultValue(GetType(System.Drawing.Color), "Firebrick")> _ > Public Overrides Property ForeColor() As System.Drawing.Color > Get > Return MyBase.ForeColor > End Get > Set(ByVal value As System.Drawing.Color) > MyBase.ForeColor = value > End Set > End Property >End Class >>
>>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; >> } >> } >>} >>>>
>>>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.