2011-12-27 21 views
0

進行状況バーに似たものを作成する必要がありますが、完了の割合ではなく時間の経過とともに徐々にフォームの右側に移動します。移動メソッドを呼び出すときは、時間と距離の両方を指定する必要があります。オブジェクトを200ピクセル右に10秒以上動かしたい。指定された距離のオブジェクトを特定の時間移動する

私はちょうどそれについて行くための最善の方法は何かに関するいくつかの提案を取得したいと思いますか?

私はタイマーを使用し、毎ティック後にオブジェクトを1px右に移動し、その後、ティックの限界を設定することによって時間を制限することを考えていました。また、オブジェクトは直線の垂直線のように見える必要があります。私は線のイメージを使用することを考えていました。なぜなら、私はイメージを描画するよりもこれに慣れていますが、線を描き、それを常にドラッグして再描画する方が良い方法でしょうか?

+2

私は、ProgressBarコントロールを使用すると、より多くのより良いアプローチになると思います。 –

+1

スライダで試してください:P –

+0

このWPFまたはWindowsフォームですか? –

答えて

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

関連する問題