如何获取一个长字符串并在15个字符的文本控件/标签中滚动
本文关键字:字符 文本 15个 控件 滚动 标签 串并 何获取 获取 一个 字符串 | 更新日期: 2023-09-27 18:23:53
我正在尝试将歌曲的歌词放入标签中滚动,但我希望标签一次只显示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以匹配歌曲的时间。