在C#中,我怎么能以一定的速度将标签移动到某个区域?

时间:2015-08-04 03:31:10

标签: c# winforms visual-studio animation label

我试图让我的标签在原来的位置是左上角。我想要发生的是当程序启动时,它会在滑行动作中大约1.5秒内逐渐进入应用程序的中心顶部。

那我该怎么办呢?我很确定有一个需要设置的变量。我使用的是Windows Forms。

1 个答案:

答案 0 :(得分:2)

你可以做几件事:

  • 使用Label控件
  • 使用Timer并按1.5秒间隔进行滑行动作
  • 在计时器的Tick事件中,将Label.Location的位置逐渐更改为应用程序的中心顶部

OR

  • 订阅OnPaint活动
  • 通过Graphics.DrawString()
  • 手动绘制标签
  • 通过DrawString()位置
  • 重新定位文字的位置
  • 使用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
    }
}