2011-12-27 81 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