我期待在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();
}
任何幫助將不勝感激!
你是說在每次調用MouseMove時繪製橢圓,但是不會在下一次調用時擦除它? – LightStriker
是的,這就是它! – si2zle