我想做一个简单的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事件中绘制并清除它们吗?
答案 0 :(得分:1)
您需要将最后一个图像的副本保留为位图对象。用户所做的一切都应该在内存中更新这个对象。您还可以处理画布的OnPaint事件,以将此位图对象显示为背景图像。