c# - 如何获取长字符串并将其滚动到 15 个字符的文本控件/标签中?

标签 c# winforms text scroll

我正在尝试获取一首歌的歌词并将其在标签中滚动,但我希望标签一次仅显示 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 线程,因为它几乎总是处于 sleep 状态。

您可能希望使用一个每次更新标签的计时器,而不是 sleep 延迟。

关于c# - 如何获取长字符串并将其滚动到 15 个字符的文本控件/标签中?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9220203/

相关文章:

c# - 如何使用可选列进行选择?

c# - 序列化不接受我的 KnownTypeAttribute,为什么?

c# - 从第一个用户控件 wpf MVVM 打开第二个用户控件

c# - 在 C# 中哪种对象初始化风格更合适?

c# - 如果之前未选择任何行,则阻止 DataGridView 在排序时选择行

c# - 如何让FolderBrowserDialog仅显示网络

php - FPDF:在单元格内更改文本颜色?

powershell - Powershell从每一行读取一些字符串

iphone - 在 iPhone 上绘制 Unicode 字符

c# - WebView2如何运行Javascript函数?