【问题标题】:Drawing and deleting old drawings绘制和删除旧图纸
【发布时间】:2012-04-22 21:21:10
【问题描述】:

我是这个论坛的新人,我的英语不是很完美,所以如果我的问题写得不好,我想原谅。

我正在用 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 天。 当我对图形对象进行新绘图时,旧图形被删除。

我尝试了 graphics.Save() 方法,但没有给我正确的结果。

当我在制作另一个图形时,如何使图形变得饱和?

【问题讨论】:

    标签: c# .net drawing


    【解决方案1】:

    当您使用图片框时,您可以使用Invalidate() 方法。

    【讨论】:

    • Invalidate() 函数没有给我想要的结果,因为鼠标移动时绘图不可见。但是使用 Refresh() 方法,绘图是可见的。问题是,现在当我开始绘制新图纸时。旧的已删除..感谢您的帮助。
    猜你喜欢
    • 1970-01-01
    • 2012-09-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-30
    • 2016-12-08
    相关资源
    最近更新 更多