我有一個函數可以將標籤中的文本更改爲另一個文本,從而顯示文本過渡效果。想象一下,我有4個帶有文本的標籤,並且我想用另一個不同的文本替換他們的文本,同時顯示相同的效果,但對於4個標籤,有沒有辦法做到這一點?同時用不同的值調用相同的函數。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
林猜測,如果它的所謂「效果」其明顯的用戶。所以如果你會按照順序對所有標籤做這件事,那就很明顯了。 –