如何取一个长字符串并在15个字符的文本控件/标签中滚动它?

时间:2012-02-09 22:54:38

标签: c# winforms text scroll

我正在尝试拍摄歌曲的歌词并将其滚动到标签中,但我希望标签一次只显示15个字符。这就像一首稳定的滚动到歌曲的结尾。我该怎么做呢?我到处都看,但我似乎找不到任何东西。

3 个答案:

答案 0 :(得分:3)

构造一个设置标签.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线程,因为它几乎总是处于睡眠状态。

除了睡眠延迟,您可能还想使用一个定时器,每次滴答都会更新标签。

答案 1 :(得分:1)

答案 2 :(得分:1)

让表单使用秒表,每秒钟调用一次更新方法。在update方法中,将标签中的文本更改为k个字符。改变k和n以匹配歌曲的时间。