在c#中,我如何以特定的速度将标签移动到特定的区域

本文关键字:速度 标签 移动 区域 | 更新日期: 2023-09-27 18:06:16

我想让我的标签在它的原始位置是左上角。我想要的是,当程序启动时,它会在大约1.5秒的时间内以滑动的动作逐渐移动到应用程序的中央顶部。

我该怎么做呢?我很确定有一个变量需要设置。我用的是Windows窗体

在c#中,我如何以特定的速度将标签移动到特定的区域

您可以做以下几件事:

  • 使用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
    }
}