0

私はこのフォーラムに参加したばかりで、英語が完璧ではないので、質問がうまく書かれていない場合は言い訳をしたいと思います。

私はC#でペイントプログラムを作成していますが、1つの問題を除いてすべてが完璧です。線、長方形、または楕円を描いているときに、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() メソッドを試してみましたが、正しい結果が得られませんでした。

別のグラフィックを作成しているときに、図面を満足させるにはどうすればよいですか?

4

1 に答える 1

0

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

于 2012-04-21T08:32:04.537 に答える