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属性改成启用
如果对你们有用的话,记得动动您的发财手指,点个赞也是爱哦。
参考文献:https://www.cnblogs.com/zybelieve/p/3287276.html
参考文献:https://blog.csdn.net/xfxf996/article/details/81635003
参考文献:https://www.cnblogs.com/biwork/p/3713251.html



