2011-12-27 82 views
0

我需要创建类似于进度条的东西,但随着时间的推移逐渐向表单右侧移动,而不是完成百分比。需要在调用移动方法时指定时间和距离,例如,我希望对象在10秒内向右移动200px。在特定时间内将对象移动指定的距离

我只想得到一些建议,最好的方法是什么?

我正在考虑在每次打勾后使用计时器并将对象1px移动到右侧,然后通过设置打勾限制来限制时间。此外,该物体需要看起来像一条垂直的直线。我正在考虑使用一条线的图像,因为我比绘制图像更熟悉这一点,但会绘制一条线,然后不断重绘它(如拖动)是一种更好的方法?

+2

我认为使用进度控制将是一个比较好的方法。 – 2011-12-27 12:51:54

+1

试一下滑块:P – 2011-12-27 12:52:09

+0

这是WPF还是Windows Forms? – 2011-12-27 12:59:33

回答

0

东西快速和肮脏的:

public Form1() 
{ 
    InitializeComponent(); 

    const int maxWidth = 200; 
    const int maxTicks = 10; 
    var currentTick = 0; 

    // Create panel and add it to this form 
    var panel = new Panel { Location = new Point(1, 1), BackColor = Color.Blue, Width = 0, Height = 5 }; 
    Controls.Add(panel); 

    // Create timer that handles updates 
    var t = new Timer { Interval = 1000 }; 
    t.Tick += delegate 
    { 
     panel.Width = maxWidth/maxTicks * currentTick; 
     if (currentTick++ != maxTicks) 
      return; 
     panel.BackColor = Color.Green; 
     t.Dispose(); 
    }; 
    t.Start(); 
} 
+0

谢谢,给了我一个很好的开始! – Matt 2011-12-27 17:24:08