【问题标题】:Windows Forms Textbox - fade-in/fade-out background color [closed]Windows 窗体文本框 - 淡入/淡出背景颜色 [关闭]
【发布时间】:2010-11-11 08:44:21
【问题描述】:

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

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

有什么简单的方法吗?

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

【问题讨论】:

    标签: winforms colors textbox fade effect


    【解决方案1】:

    假设这是 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 时,这将产生全红色。

    【讨论】:

    • 是的,我有自定义控件;)我考虑过与您的类似的解决方案,但不确定它是否对应用程序性能有好处,因为有时我在屏幕上有大约 20 个经过验证的条目:/我会检查它。谢谢帮助。
    • 如果您只在需要时运行计时器,将其固定在 60 FPS,您根本不会注意到任何性能下降。
    • 20 个这样的控件对于类似现代计算机的 WinForms 应用程序来说应该不是问题。 Windows 3.1 没有 .Net。 :)
    • 好的 ;) 再次感谢您的宝贵时间。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-15
    • 1970-01-01
    • 2020-04-01
    • 2010-11-01
    • 1970-01-01
    相关资源
    最近更新 更多