2011-06-22 82 views
1

我有一个函数可以将标签中的文本更改为另一个文本,从而显示文本过渡效果。想象一下,我有4个带有文本的标签,并且我想用另一个不同的文本替换他们的文本,同时显示相同的效果,但对于4个标签,有没有办法做到这一点?同时用不同的值调用相同的函数。C#同时调用具有不同值的相同函数

感谢>>

+3

为什么不为每个标签调用函数?有没有明显的延迟?使用多线程,如您的标签所指定的肯定是相当的矫枉过正。 –

+1

这是什么类型的应用程序?如果它是一个WinForm应用程序,它可能就像调用SuspendLayout(),处理然后调用ResumeLayout()一样简单。没有任何代码,很难弄清楚你到底在问什么。 – 48klocs

+0

林猜测,如果它的所谓“效果”其明显的用户。所以如果你会按照顺序对所有标签做这件事,那就很明显了。 –

回答

1

我会推荐使用双缓冲来实现这种效果。您更新标签,然后使用双缓冲来显示已完成的表单。有许多关于为WinForms应用程序启用此功能的文章,并且该概念适用于大多数UI平台。

Windows用户界面(为的WinForms至少)不喜欢从多个线程更新,所以我就懒得努力去追求(除非你需要大量的后台计算来获得新值)

+0

谢谢holtavolt,我通过一个StoredProc获取新值,使用DataReader,我有一个结构,比方说Data.Info1,...,Data.Info4和一个数据列表。例如,我想更改显示过渡效果的List [4]的4个标签(对应于List [0])的文本,如果我理解您的话,我不会看到效果,只是标签新值已经改变。 – Somebody

+0

好的 - 我错过了关于过渡效果的部分,它是API。基于计时器的动画可以让你更新多个控件动画,但这需要你的过渡效果API支持“单步”动画。什么是您正在使用的文字过渡效果? – holtavolt

+0

一个我用字符串做的。是否有可应用于标签文本的默认动画? – Somebody

0

您可以修改您的功能来一次更改所有标签。就像这样:

Foreach EffectStep 
    Foreach Label 
     do some job 
+0

为什么downvote?如果你不喜欢回答评论为什么......。它唯一的伪代码显示的想法,而不是somthing应该被理解为可编译的代码 –

+0

是的,我用太多太多来使用你,而不是你,sry;) –

相关问题