c# 如何在 winforms 中创建类似提词器的应用程序?

发布于 2024-11-04 08:32:09 字数 136 浏览 0 评论 0原文

我正在开发一个 C# WinForms 应用程序。我找不到解决方案,可能因为我是新人。

我需要创建一个类似提词器的文本,从底部滚动并循环向上。 有没有简单的解决方案或代码片段?

一个例子会很好,这样我就可以理解它是如何完成的。

I'm developing a C# WinForms application. I can't find a solution to this probably because I'm new.

I need to create a teleprompter like text that scrolls from the bottom and goes up in a loop.
is there any simple solution or a code snippet?

An example would be nice so that I can understand how it is being done.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

时间海 2024-11-11 08:32:09

您还可以创建一个带有文本的 Label 控件,并且只需每隔 1/20 秒左右将其垂直位置减少 1(以像素为单位)。

You could also create a Label control with text, and simply decrease its Vertical position with 1 (in pixels) every 1/20th of a second or so.

羁绊已千年 2024-11-11 08:32:09

这个想法是你可以使用计时器控件,在TimerEventProcessor中处理它的Tick事件

myTimer.Tick += new EventHandler(TimerEventProcessor);

Set  myTimer.Interval = 1000;// event will fire every sec

private static void TimerEventProcessor(Object myObject,EventArgs myEventArgs) {
/// your logic to add new text, and change text position to give scroll effect
}

创建滚动效果

,让你的逻辑改变文本位置,即改变它的y坐标,在底部添加新文本,这样你就可以在计时器中 .tick 事件处理程序你可以做

if(label.Location.Y < 20)
label.Location = new Point(label.Location.X, this.ClientSize.Height);
else
label.Location = new Point(label.Location.X, label.Location.Y - 1);

希望这有帮助

The idea is you could use the timer control, handle it Tick event

myTimer.Tick += new EventHandler(TimerEventProcessor);

Set  myTimer.Interval = 1000;// event will fire every sec

private static void TimerEventProcessor(Object myObject,EventArgs myEventArgs) {
/// your logic to add new text, and change text position to give scroll effect
}

In TimerEventProcessor, put you logic to change text position that is to change it y coordinate, add new text in the bottom, this way you can create the scroll effect

In the timer.tick event handler you could do

if(label.Location.Y < 20)
label.Location = new Point(label.Location.X, this.ClientSize.Height);
else
label.Location = new Point(label.Location.X, label.Location.Y - 1);

Hope this help

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文