我希望在MouseMove()事件期间在屏幕上绘制一个椭圆,但希望它仅绘制从起点到当前鼠标位置的最新椭圆。 目前,它正在为要注册的每个鼠标位置绘制一个椭圆。 如果我只是使用MouseDown()和MouseUp()事件,我将能够很容易地绘制椭圆而不会显示椭圆,但是我希望用户在他们移动鼠标时能够看到椭圆,因此他们可以确切知道他们在哪里放置它。 有谁知道我怎么能做到这一点?
我当前的代码如下:
private void pnlDraw_MouseDown(object sender, MouseEventArgs e)
{
initialX = e.X;
initialY = e.Y;
previousX = e.X;
previousY = e.Y;
isPainting = true;
}
private void pnlDraw_MouseMove(object sender, MouseEventArgs e)
{
if (isPainting)
{
switch (currentDrawType)
{
case DRAWTYPE.ELLIPSE:
{
DrawEllipse(e);
break;
}
default:
{
break;
}
}
}
}
private void DrawEllipse(MouseEventArgs e)
{
pen = new Pen(Color.Black);
Graphics graphics = pnlDraw.CreateGraphics();
graphics.DrawEllipse(pen, initialX, initialY, e.X - initialX, e.Y - initialY);
previousX = e.X;
previousY = e.Y;
graphics.Dispose();
}
任何帮助将不胜感激!