C#同时调用具有不同值的相同函数
我有一个函数可以将标签中的文本更改为另一个文本,从而显示文本过渡效果。想象一下,我有4个带有文本的标签,并且我想用另一个不同的文本替换他们的文本,同时显示相同的效果,但对于4个标签,有没有办法做到这一点?同时用不同的值调用相同的函数。C#同时调用具有不同值的相同函数
感谢>>
我会推荐使用双缓冲来实现这种效果。您更新标签,然后使用双缓冲来显示已完成的表单。有许多关于为WinForms应用程序启用此功能的文章,并且该概念适用于大多数UI平台。
Windows用户界面(为的WinForms至少)不喜欢从多个线程更新,所以我就懒得努力去追求(除非你需要大量的后台计算来获得新值)
谢谢holtavolt,我通过一个StoredProc获取新值,使用DataReader,我有一个结构,比方说Data.Info1,...,Data.Info4和一个数据列表。例如,我想更改显示过渡效果的List [4]的4个标签(对应于List [0])的文本,如果我理解您的话,我不会看到效果,只是标签新值已经改变。 – Somebody
好的 - 我错过了关于过渡效果的部分,它是API。基于计时器的动画可以让你更新多个控件动画,但这需要你的过渡效果API支持“单步”动画。什么是您正在使用的文字过渡效果? – holtavolt
一个我用字符串做的。是否有可应用于标签文本的默认动画? – Somebody
您可以修改您的功能来一次更改所有标签。就像这样:
Foreach EffectStep
Foreach Label
do some job
为什么downvote?如果你不喜欢回答评论为什么......。它唯一的伪代码显示的想法,而不是somthing应该被理解为可编译的代码 –
是的,我用太多太多来使用你,而不是你,sry;) –
为什么不为每个标签调用函数?有没有明显的延迟?使用多线程,如您的标签所指定的肯定是相当的矫枉过正。 –
这是什么类型的应用程序?如果它是一个WinForm应用程序,它可能就像调用SuspendLayout(),处理然后调用ResumeLayout()一样简单。没有任何代码,很难弄清楚你到底在问什么。 – 48klocs
林猜测,如果它的所谓“效果”其明显的用户。所以如果你会按照顺序对所有标签做这件事,那就很明显了。 –