Chart这个图表控件,第一次使用,并且达到我想要的效果了,所以今天记录并分享给大家(我这边做的是饼图)
最终效果图:
一.先建一个WinForm项目,然后拖一个Chart控件,如下图:
二.给Chart控件的Series属性添加集合
三.选择图表类型,饼图
四.添加数据点集合,就是饼图要统计的是什么。
比如我添加的是三个数据点,我要统计任务已完成,执行中,未开始状态
里面的属于按自己需要设置即可。下面是个人喜欢的样式
PieLabelStyle标签属性设置为Outside,就是图中的效果。
饼图右上角的数值,设置lsVisblelnLegend属于为True
设置属性 LegendText=6;
两个属性作用就是单独显示具体的数值在图例中,对应图表具体的状态值。如图
基本静态数据属性操作就上面这些了。下面来介绍动态数据绑定
比较简单,直接上代码了
public void TaskChart(){var taskEnd0 ="Sql查询语句,具体返回的数值";var taskEnd1 = "Sql查询语句,具体返回的数值";var taskEnd2 = "Sql查询语句,具体返回的数值";double[] yValues = { taskEnd0.Count, taskEnd1.Count, taskEnd2.Count };string[] xValues = { "已完成", "未执行", "执行中" };Chart1.Series["Series1"].Points.DataBindXY(xValues, yValues);foreach (DataPoint point in Chart1.Series[0].Points){if (point.AxisLabel == "已完成"){point.LegendText = taskEnd0.Count.ToString();}if (point.AxisLabel == "未执行"){point.LegendText = taskEnd1.Count.ToString();}if (point.AxisLabel == "执行中"){point.LegendText = taskEnd2.Count.ToString();}}Chart1.Series["Series1"].IsXValueIndexed = false;Chart1.Series["Series1"].IsValueShownAsLabel = false;Chart1.Series["Series1"]["PieLineColor"] = "Black";//连线颜色Chart1.Series["Series1"]["PieLabelStyle"] = "Outside";//标签位置Chart1.Series["Series1"].ToolTip = "#VALX";//显示提示用语}
托入一个定时器控件,实时刷新数据
private void timer6_Tick(object sender, EventArgs e){TaskChart();}
搞定,效果图
解决字体重叠问题,启动3D效果即可解决:
启用3D效果步骤:
第一步:
第二步,找到Area3DStyle属性改成启用
如果对你们有用的话,记得动动您的发财手指,点个赞也是爱哦。
参考文献:/zybelieve/p/3287276.html
参考文献:/xfxf996/article/details/81635003
参考文献:/biwork/p/3713251.html