Question

I want to validate the user's input and I want to inform him/her about validation error with changing background color of a standard Windows Forms TextBox control.

But instead of changing color immediately I would like to use a color fading effect.

Is there any simple way to do it ?

Edit: I also have access to Infragistics controls, I'm not sure if it makes any difference.

Was it helpful?

Solution

Assuming this is C#/.NET, creating your own user control is an appropriate solution to this problem. Instead of inheriting from UserControl, your control should instead inherit from TextBox - this will make your control look and act just like an ordinary TextBox, and you can add code to handle the fading effect:

public partial class MyCustomTextbox : Textbox
{

}

To do the fading, you'd have to create some sort of timer to progressively change BackColor with a function like this:

function FadeBackground(float progress)
{
    Color color = Color.FromArgb(255, (int)((1 - progress) * 255),
        (int)((1 - progress) * 255));
    base.BackColor = color;
}

When parameter progress = 0, this will produce a white background, and when progress = 1 this will be full red.

Licensed under: CC-BY-SA with attribution
Not affiliated with StackOverflow
scroll top