我正在尝试拍摄歌曲的歌词并将其滚动到标签中,但我希望标签一次只显示15个字符。这就像一首稳定的滚动到歌曲的结尾。我该怎么做呢?我到处都看,但我似乎找不到任何东西。
答案 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)
以下是在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
答案 2 :(得分:1)
让表单使用秒表,每秒钟调用一次更新方法。在update方法中,将标签中的文本更改为k个字符。改变k和n以匹配歌曲的时间。