我正在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);
}
}
请帮帮我.. 提前谢谢..
答案 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()