在面板上绘图c#

时间:2015-04-21 14:20:11

标签: c# visual-studio-2010 drawing

我需要在面板上绘制多边形图(尺寸400,400) 我试试这个,但它没有用。

PointF[] points = new PointF[totalpaso + 1];
for (int d = 0; d <= totalpaso; d++)
{
    s = (float)(hola1[d] + 200);
    w = (float)(hola2[d] + 200);
    j = new PointF(s, w);
    points[d] = j;
}
grafico.DrawPolygon(lapiz, points);

2 个答案:

答案 0 :(得分:0)

我想你应该看一下这篇文章: https://msdn.microsoft.com/en-us/library/07e699tw(v=vs.110).aspx

但只有这种方法,你才能走远。它将在OnPaint方法中绘制: C# Forms - Using Paint methods?

答案 1 :(得分:0)

您可能希望基于Panel进行自己的控制。

一个非常基本的例子就是:

public sealed class MyPanel: Panel
{
    public MyPanel()
    {
        this.ResizeRedraw = true;
    }

    protected override void OnPaint(PaintEventArgs e)
    {
        base.OnPaint(e);

        using (var brush = new SolidBrush(this.ForeColor))
        {
            e.Graphics.FillEllipse(brush, 0, 0, this.Width, this.Height);
        }
    }
}

要测试它,将类添加到Windows窗体项目,编译,然后将其放到窗体上并将其设置为设计器中的“Dock”。

然后将BackColor设置为红色,将ForeColor设置为蓝色,然后运行程序。

然后,您可以将所需的绘图代码添加到OnPaint()覆盖。