我想写一些Paint程序,我在画布上遇到动态绘图形状的问题。我有两种方法
1.当按钮鼠标按下并且鼠标移动时,我可以看到绘图形状,但是绘制下一个形状可以清除画布。
private void canvas_MouseMove(object sender, MouseEventArgs e)
{
if (!buttonPressed) return;
int x = Math.Min(xStart, e.X);
int y = Math.Min(yStart, e.Y);
int width = Math.Max(xStart, e.X) - Math.Min(xStart, e.X);
int heigth = Math.Max(yStart, e.Y) - Math.Min(yStart, e.Y);
rect = new Rectangle(x, y, width, heigth);
Refresh();
}
private void canvas_Paint(object sender, PaintEventArgs e)
{
e.Graphics.DrawRectangle(Pens.Red, rect);
}
2.第二种方法使我可以绘制多个形状(矩形),线条,文本等,但是当鼠标按钮启动时,形状是可见的,而不是在移动鼠标时是不可接受的......
private void canvas_MouseUp(object sender, MouseEventArgs e)
{
Graphics g = canvas.CreateGraphics();
g.DrawRectangle(Pens.Red, rect);
g.Dispose();
}
如何将这两种方法结合起来?我有Paint绘画效果?