如何在Winform中显示Panel中的饼图

时间:2014-09-23 05:58:22

标签: c# winforms charts panel pie-chart

我正在winform中创建Piechart。我的图表很好。我想要添加的唯一一件事就是在Panel中显示Piechart但我无法做到..

这是饼图代码..

    public void DrawPieChartOnForm()
    {
        //Take Total Five Values & Draw Chart Of These Values.
        int[] myPiePercent = { 10, 20, 25, 5, 40 };

        //Take Colors To Display Pie In That Colors Of Taken Five Values.
        Color[] myPieColors = { Color.Red, Color.Black, Color.Blue, Color.Green, Color.Maroon };

        using (Graphics myPieGraphic = this.CreateGraphics())
        {
            //Give Location Which Will Display Chart At That Location.
            Point myPieLocation = new Point(10, 400);

            //Set Here Size Of The Chart…
            Size myPieSize = new Size(500, 500);

            //Call Function Which Will Draw Pie of Values.
            DrawPieChart(myPiePercent, myPieColors, myPieGraphic, myPieLocation, myPieSize);
        }
    }

请帮帮我.. 提前谢谢..

2 个答案:

答案 0 :(得分:0)

看看Hiren Khirsaria的这篇文章:

hirenkhirsaria.blogspot.com/2012/06/dynamically-creating-piebar-chart-in-c.html


我认为你需要的是创建一个控件以处理饼图并将其添加到面板上。 类似的东西:

panel.Controls.Add(pieChart);

答案 1 :(得分:0)

您需要了解WinForms Graphics的基础知识。

要将您的馅饼放在Panel而不是Form,就像现在一样,您只需将this.CreateGraphics()更改为panel.CreateGraphics()即可。 但这不好!当你最小化你的表格时,你的馅饼会消失,对吧......?

因此,所有绘图必须使用Paint对象从e.Graphics事件触发/触发! 只有这样,绘图才会持续存在各种各样的外部事件。

您可以在课程级别存储数据,并在DrawPieChart的{​​{1}}事件中调用Paint,并提交Panel代替e.Graphics。 。只要更改了值,就使用myPieGraphic来触发绘制事件..:

panel.Invalidate()