Windows窗体文本框 - 淡入/淡出背景色

时间:2009-07-16 12:54:15

标签: winforms colors textbox fade effect

我想验证用户的输入,我想通过更改标准Windows Forms TextBox控件的背景颜色来通知他/她有关验证错误。

但是我不想立即改变颜色,而是想使用褪色效果。

有没有简单的方法呢?

编辑: 我也可以访问Infragistics控件,我不确定它是否有任何区别。

1 个答案:

答案 0 :(得分:2)

假设这是C#/ .NET,创建自己的用户控件是解决此问题的合适方法。而不是从UserControl继承,您的控件应该继承自TextBox - 这将使您的控件看起来像普通的TextBox一样,并且您可以添加代码来处理淡化效果:

public partial class MyCustomTextbox : Textbox
{

}

要做淡化,你必须创建某种计时器来逐步改变BackColor这样的函数:

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

当参数progress = 0时,这将产生白色背景,当progress = 1时,这将是全红色。