C# 实现窗体底部滚动字幕
2024-10-21 15:43:53
使用的控件
- panel和label及其定时器。
实现原理
- 通过定时器定时将label的位置在panel上进行移动,实现滚动的视觉效果,此处将label放在panel上的好处是可以单独设置滚动字母的背景色,且滚动字幕的整体显示区域可有panel控制。
控件布置
- 在需要显示滚动字幕的位置放置一个panel并设置其大小和位置,在同样的位置上放置label,并在父窗体为panel的情况下将label的位置设置为(0,0),也可以在代码中设置,拖动定时器到窗体上。
源代码:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms; namespace ScrollText
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private int PosX = 0; // 定义全局变量
private void Form1_Load(object sender, EventArgs e)
{
timer1.Enabled = true;
PosX = this.panel.Width; // 获取初始位置
this.label.Location = new Point(PosX, this.label.Top); // 设置label开始滚动的位置
this.label.Text = "新闻资讯:123456789"; // 设置滚动字幕内容,如内容需要变化,也可以设置变量,将变量赋值给label.Text,
this.label.AutoSize = true;
this.label.Visible = true;
this.label.Parent = this.panel;
this.panel.BackColor = Color.LightBlue; // 设置滚动条背景色
} private void ScrollDisplay()
{
if (PosX <= -this.label.Size.Width)
{
PosX = this.panel.Width + 3;
}
PosX = PosX - 3; // 位置偏差,可控制字幕移动的快慢
this.label.Location = new Point(PosX, this.label.Top);
} private void timer1_Tick(object sender, EventArgs e)
{
ScrollDisplay();
}
}
}
效果图
最新文章
- mysql分表的3种方法
- 第一次写这么长的js
- Request.UrlReferrer
- w3m常用快捷键
- eclipse 设置默认编码为Utf-8
- Dubbo_Admin安装
- 《Cortex-M0权威指南》之体系结构---异常和中断
- Java机试题目_怎样截取字符串
- 第一百一十七节,JavaScript,DOM元素尺寸和位置
- 自动化测试 selenium中WebDriver 和WebElement的区别
- Oracle学习笔记四
- golang介绍
- QUARTZ系列之零:概述
- Linux基础命令---netstat显示网络状态
- LeetCode 7最长公共前缀
- Ibatis.Net 输出SQL语句学习(七)
- vue的全局引用
- ubuntu14.04, libtinyxml.so.2.6.2: cannot open shared object file: No such file or directory
- [luogu2680] 运输计划
- Linux美化终端