簡體   English   中英

如何獲取長字符串並在15個字符的文本控件/標簽中滾動?

[英]How to take a long string and scroll it in a 15 character text control/label?

我正在嘗試獲取歌曲的歌詞並在標簽中滾動,但是我希望標簽一次只能顯示15個字符。 就像滾動到歌曲的結尾一樣。 我將如何去做呢? 我到處都看過,但似乎找不到任何東西。

構造一個循環,設置標簽的.Text屬性。 循環的每次迭代應增加要在每次迭代中滾動的許多字符。

string Lyrics = "This song is just six words long";
int CurrentPosition = 0;
const int CharactersToShow = 15;
for (int i = 0; i < Lyrics.Length; i++)
{
    lblOutput.Text = CharactersToShow + CurrentPosition > Lyrics.Length
                ? Lyrics.Substring(CurrentPosition)
                : Lyrics.Substring(CurrentPosition, CharactersToShow);
    CurrentPosition++;
    lblOutput.Update();
    Thread.Sleep(250);
}

一些注意事項:這僅是示例。 如所寫,它壟斷了GUI線程,因為它幾乎總是處於睡眠狀態。

要避免睡眠延遲,您可能想要使用一個計時器,該計時器在每個刻度上更新標簽。

這是在WinForms中創建文本滾動效果的教程: http : //www.dotnettutorials.com/tutorials/windowsprogramming/text-scroll-effect-cs.aspx

另外,CodeProject上還有一個WinForms字幕控件: http : //www.codeproject.com/Articles/24587/Easy-to-Use-Marquee-Control-for-Windows-Form-with

讓表單使用秒表,該秒表每n毫秒調用一次更新方法。 在更新方法中,以k個字符更改標簽中的文本。 改變k和n以匹配歌曲的時間。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM