ページに 2 行ある場合
最初の行をアニメーション化して 2 番目の行の位置に到達させるにはどうすればよいですか?
ラインが 2 つの場所の間を移動した距離のパーセンテージとなる「カウンター」変数を追加します。開始位置から開始するため、ゼロに初期化します。タイマーを追加し、タイマーが刻むたびに「カウンター」をインクリメントし、クライアント領域を無効にして、再描画が行われるようにします。「カウンター」が 100 に達し、ターゲットに 100% 到達したら、不要になったのでタイマーを無効にします。
ペイント ルーチンでは、開始位置と終了位置が既にわかっているので、2 つの間の「カウンター」パーセンテージで線を引くだけです。したがって、startX と endX がわかっている場合、ペイントされたバージョンは startX + ((endX - startX) / 100 * カウンター) になります。線の上、左、右、下のそれぞれについてこれを行えば完了です。
私が間違っていなければ、まばたきがありますが、これはあなたの問題ですか? このBufferedGraphics の小さな例を使用してみてください
System.Drawing.Graphics g = this.CreateGraphics();
System.Drawing.BufferedGraphicsContext dc = new BufferedGraphicsContext();
BufferedGraphics backbuffer = dc.Allocate(g, new Rectangle(new Point(0, 0), g.VisibleClipBounds.Size.ToSize()));
backbuffer.Graphics.DrawLine(Pens.White, 10, 10, 10, 100);
backbuffer.Render(g);