如何在同一个面板中绘制多个椭圆

时间:2016-04-28 19:39:54

标签: c# graphics

我试图在同一个面板中绘制一些椭圆,并通过鼠标点击确定协调器。这是我的代码,这段代码只能绘制一个圆圈。较新的圈子始终更新面板上的旧圆圈。所以总有一个圈子。

private void panel1_MouseDown(object sender, MouseEventArgs e)
        {

            x = e.X;
            y = e.Y;
            panel1.Invalidate();
        }
        Graphics g;
        private void panel1_Paint(object sender, PaintEventArgs e)
        {
            g = panel1.CreateGraphics();

            g.FillEllipse(Brushes.Red, x,y, 10, 10);
        }

1 个答案:

答案 0 :(得分:0)

这会让你画出很多圈子:

List<Point> points = new List<Point>();   // List<T> is wonderful !

private void panel1_MouseDown(object sender, MouseEventArgs e)
{
     points.Add(e.Location);
     panel1.Invalidate();
}

private void panel1_Paint(object sender, PaintEventArgs e)
{
     g = e.Graphics;    // only ever use this one for persistent graphics!!
     foreach( Point pt in points)
        g.FillEllipse(Brushes.Red, pt.X, pt.Y,  10, 10);
}

通过

删除所有内容
points.Clear();

删除最后一个

points.Remove(points.Last());

对于其他尺寸的商店List<Rectangle>。对于更复杂的绘图,创建一个自己的DrawAction类来保持笔,颜色甚至旋转和其他形状等。