如何用鼠标绘图?

时间:2015-07-22 14:30:33

标签: c# winforms

我想做一个简单的mspaint。首先,我在鼠标事件中画线。

private void pnl_Draw_MouseMove(object sender, MouseEventArgs e)
{
    if(startPaint)
    {
        g = pnl_Draw.CreateGraphics();
        g.DrawLine(p, new Point(initX ?? e.X, initY ?? e.Y), new Point(e.X, e.Y));
        initX = e.X;
        initY = e.Y;
    }
}

然后,我意识到如果表单最小化,所有问题都将得到解决。但是,如何使用onpaint事件来执行此操作?当用户点击并移动时,我应该将所有点存储在列表中,然后在onpaint事件中绘制并清除它们吗?

1 个答案:

答案 0 :(得分:1)

您需要将最后一个图像的副本保留为位图对象。用户所做的一切都应该在内存中更新这个对象。您还可以处理画布的OnPaint事件,以将此位图对象显示为背景图像。