Articles in this section
Category / Section

How to customize the BackColor, ForeColor of TextBoxExt when its Visualstyle is enabled?

2 mins read

The BackColor of the TextBoxExt is customized based on the Visual style appearance. When Visual style is set as Office2007 or Office2010 style in TextBoxExt, the bordercolor and backcolor of the TextBoxExt is specified in source level. So, the default backcolor of the TextBoxExt gets applied when it is lost focus. You can achieve this requirement by creating custom control that is inherited from TextBoxExt and overriding the following events.

1)OnGotFocus

2)OnLostFocus

The following code example demonstrates the same.

C#

class TextBoxAdv: TextBoxExt
{
    protected override void OnLostFocus(EventArgs e)
    {
        //To avoid triggering OnLostFocus method, comment the below line.
        //base.OnLostFocus(e);
    }
    protected override void OnGotFocus(EventArgs e)
    {
        //To avoid triggering OnGotFocus method, comment the below line.
        //base.OnGotFocus(e);
    }
}
//To change the backcolor
void textBoxAdv1_TextChanged(object sender, EventArgs e)
{
    textBoxAdv1.BackColor = textBoxAdv1.Text == textBoxAdv1.Tag.ToString() ? textBoxAdv1.BackColor : Color.Red;
}
//To change the backcolor
void textBoxAdv2_TextChanged(object sender, EventArgs e)
{
    textBoxAdv2.BackColor = textBoxAdv2.Text == textBoxAdv2.Tag.ToString() ? textBoxAdv2.BackColor : Color.Red;
}

VB

Class TextBoxAdv
    Inherits TextBoxExt
    Protected Overrides Sub OnLostFocus(ByVal e As EventArgs)
        'To avoid triggering OnLostFocus method, comment the below line.
        'base.OnLostFocus(e);
    End Sub
    Protected Overrides Sub OnGotFocus(ByVal e As EventArgs)
        'To avoid triggering OnGotFocus method, comment the below line.
        'base.OnGotFocus(e);
    End Sub
End Class
'To change the backcolor
Private Sub textBoxAdv1_TextChanged(ByVal sender As Object, ByVal e As EventArgs)
    textBoxAdv1.BackColor = If(textBoxAdv1.Text = textBoxAdv1.Tag.ToString(), textBoxAdv1.BackColor, Color.Red)
End Sub
'To change the backcolor
Private Sub textBoxAdv2_TextChanged(ByVal sender As Object, ByVal e As EventArgs)
    textBoxAdv2.BackColor = If(textBoxAdv2.Text = textBoxAdv2.Tag.ToString(), textBoxAdv2.BackColor, Color.Red)
End Sub

The following screenshots illustrate the output.

Before overriding the functions

Figure 1: Before overriding the functions

After overriding the functions

Figure 2: After overriding the functions

Sample Links

C#: TextBoxExt_BackColor_C#

VB: TextBoxExt_BackColor_VB

Did you find this information helpful?
Yes
No
Help us improve this page
Please provide feedback or comments
Comments (0)
Please sign in to leave a comment
Access denied
Access denied