2012-04-21 13 views
0

私はこのフォーラムでは新しく、私の英語は完璧ではないので、私の質問がうまく書かれていないと言いたいのですが。古い図を描き、削除する

私はC#でペイントプログラムを作っていますが、すべてが完璧なことは一つの問題があると思います。 私は線や矩形、または楕円を描いているときに、mouseMoveイベントが呼び出されたときに古いシェイプも描画されます。

mouseMoveイベントでシェイプを描画する方法と、描画されていない古いシェイプを描画する方法。

ここに私のコードの一部があります。

//---Variables declared by the Prgrammer---// 
//'parent' is variable that take the MdiParent 
//'mouseIsDown' is boolean variable 
//'startPoint' and 'endPoint' are Point Varables 
//'pen' is Pen variable that is configured eralier 
//'graphic' is pictureBox in the same form. 

private void pbx_MouseDown(object sender, MouseEventArgs e) 
    { 
     if (parent.btnLine.Checked) 
     { 
      mouseIsDown = true; 
      startPoint = new Point(e.X, e.Y); 
     } 
    } 

    private void pbx_MouseMove(object sender, MouseEventArgs e) 
    { 
     if (mouseIsDown == true && parent.btnLine.Checked) 
     { 
      pen = new Pen(parent.btnPreview.BackColor, 12); 
      endPoint = new Point(e.X, e.Y); 
      graphic.DrawLine(pen, startPoint, endPoint); 
     } 
    } 

    private void pbx_MouseUp(object sender, MouseEventArgs e) 
    { 
     mouseIsDown = false; 
    } 

私を助けてください。これは私の大きな問題です。おかげさまで


私は2日待っています。 グラフィックオブジェクトに新しい図面を作成するときに、古いグラフィックが削除されます。

私はgraphic.Save()メソッドを試してみましたが、私に正しい結果を与えていません。

私は別のグラフィックを作成しているときに図面をサティにする方法はありますか?

答えて

0

ピクチャボックスを使用しているので、Invalidate()メソッドを使用できます。

+0

Invalidate()関数は、マウスの移動で図面が表示されないため、私に希望の結果を与えません。 しかし、Refresh()メソッドを使用すると、図面が表示されます。問題は、今、私が新しい図面を描こうとしているときです。古いものは削除されます.. 助けてくれてありがとう。 – Takerman

関連する問題