在c#中,我如何以特定的速度将标签移动到特定的区域
本文关键字:速度 标签 移动 区域 | 更新日期: 2023-09-27 18:06:16
我想让我的标签在它的原始位置是左上角。我想要的是,当程序启动时,它会在大约1.5秒的时间内以滑动的动作逐渐移动到应用程序的中央顶部。
我该怎么做呢?我很确定有一个变量需要设置。我用的是Windows窗体
您可以做以下几件事:
- 使用
Label
控制 - 使用
Timer
并勾选1.5秒间隔滑翔运动 - 定时器
Tick
事件时,将Label.Location
的位置逐渐改变到应用程序的中心顶部
或
- 订阅
OnPaint
事件 - 通过
Graphics.DrawString()
手动绘制标签 - 通过
DrawString()
location 重新定位文本的位置 - 使用
Timer
每1.5秒使绘画无效,Invalidate()
文本位置
public partial class Form1 : Form
{
public Form1()
{
this.InitializeComponent();
this.InitializeTimer();
}
private void InitializeTimer()
{
this.timer1.Interval = 1500; //1.5 seconds
this.timer1.Enabled = true; //Start
}
private void timer1_Tick(object sender, EventArgs e)
{
int step = 5; //Move 5 pixels every 1.5 seconds
//Limit and stop till center-x of label reaches center-x of the form's
if ((this.label1.Location.X + (this.label1.Width / 2)) < (this.ClientRectangle.Width / 2))
//Move from left to right by incrementing x
this.label1.Location = new Point(this.label1.Location.X + step, this.label1.Location.Y);
else
this.timer1.Enabled = false; //Stop
}
}