【发布时间】:2011-05-08 00:36:10
【问题描述】:
我有一个 Windows 窗体,用 C# 编写,有 7 个文本框。当其值被更改并被接受时,每个文本框都会更新 2 或 3 个其他文本框。我想做的是以某种方式获取那些需要更新的文本框,并用浅色背景或其他东西使它们“闪烁”。目的是向用户展示正在更新的内容,并增加一点天赋。
我不确定是否有一种简单的方法可以做到这一点,这就是我在这里问的原因。我认为,我可以在文本框控件背景色上使用计时器、while 循环和带有递减 alpha 通道的背景色,但我想看看是否有更好的方法。
jQuery UI 有一个“突出显示”效果,它显示了我想要完成的事情(虽然我希望我的要慢一点)。直接到jQuery UI Effects Demo page这里,在窗口的下拉框中选择“高亮”,然后点击“运行效果”。
编辑
根据我的时间和资源限制,我不得不采用自己的解决方案,但文本框不支持 Hans Passant 提到的透明颜色。所以,我使用了一个自停计时器,它增加了 R、G 和 B 的值,直到控件完全变白(R=255,G=255,B=255);
编辑 2
在我们更新到 .NET 4.0 之后,使用 George Johnston 解决方案的变体将 flash 事件重新编码为一种扩展方法。我觉得这是一个更清洁的解决方案,并且扩展方法可以自动提供给任何人using 它。
【问题讨论】:
-
我认为您的方法是直接的解决方案。 JQuery 的简单之处在于网页...
-
是的。 jQuery 链接的目的是给出一个我想要完成的可视化示例。
-
基于时间限制和其他限制,我想如果我的想法可以的话,我必须接受那个。根据我的经验和可用资源,这是迄今为止最简单、最容易/最快的编码。所有这些都是很好的答案,我很感激你的意见。我用我正在使用的新方法更新了我的问题。
标签: c# winforms animation textbox backcolor