/// <summary>
/// 使用treeNode中的数据填充chart图标
/// </summary>
/// <param name="tnGuiGe">treeNode节点:规格层面</param>
private void FillChart(TreeNode tnGuiGe)
{
label_TipChart.Visible = false;
DataTable dt = new DataTable();
dt.Columns.Add("step");//步骤数
dt.Columns.Add("renWuShuLiang");//任务数量
dt.Columns.Add("WCShuLiang");//实际完成数量
int renWu = int.Parse(tnGuiGe.Nodes[1].Text.Split(':')[1]);//取到任务数量
foreach (TreeNode tnc in tnGuiGe.Nodes[4].Nodes)
{
string step = tnc.Text.Split(':')[1];//步骤名称
int WCShuLiang = int.Parse(tnc.Nodes[2].Tag.ToString());//完成数量
dt.Rows.Add(step, renWu, WCShuLiang);//添加数据行
}
//清空chart1
chart1.DataSource = null;
chart1.Series.Clear();
//绑定chart
chart1.DataSource = dt;
chart1.Series.Add("工序任务数量");
chart1.Series.Add("工序完成数量");
chart1.Series[0].XValueMember = "step";
//MessageBox.Show(chart1.Series[0].ChartType.ToString());
//chart1.Series[0].ChartType = SeriesChartType.Column;
chart1.Series[0].YValueMembers = "renWuShuLiang";
chart1.Series[1].YValueMembers = "WCShuLiang";
// chart1.Series[1].ChartType = SeriesChartType.Column;
chart1.Series[0].IsValueShownAsLabel = true;//显示图的值
chart1.Series[1].IsValueShownAsLabel = true;//显示图的值
chart1.Titles.Clear();//清空标题
chart1.Titles.Add("【 "+tnGuiGe.Nodes[0].Text+" 规格"+tnGuiGe.Text+"】生产进度跟踪");//添加一个标题
//背景颜色
chart1.BackColor = Color.Black; //控件背景色
chart1.Legends[0].BackColor = Color.Black;//图例文字背景色
chart1.ChartAreas[0].BackColor = Color.Black;//网格(绘图区域)背景色
//前景颜色
chart1.ForeColor = Color.Green; //控件
chart1.Legends[0].ForeColor = Color.DarkOrange;//图例文字
chart1.Series[0].LabelForeColor = Color.Red;//图顶端值
chart1.Series[1].LabelForeColor = Color.Lime;
chart1.Series[0].Color = Color.Red;//图形线或者填充的颜色
chart1.Series[1].Color = Color.LimeGreen;
chart1.ChartAreas[0].AxisX.LineColor = Color.Green;//坐标轴线颜色
chart1.ChartAreas[0].AxisY.LineColor = Color.Green;
chart1.ChartAreas[0].AxisX.MajorGrid.LineColor = Color.Gray;//坐标轴方向的网格线颜色
chart1.ChartAreas[0].AxisY.MajorGrid.LineColor = Color.Gray;//坐标轴方向的网格线颜色
chart1.ChartAreas[0].AxisX.MajorTickMark.LineColor = Color.Green;//坐标刻度颜色
chart1.ChartAreas[0].AxisY.MajorTickMark.LineColor = Color.Green;//坐标刻度颜色
chart1.ChartAreas[0].AxisX.TitleForeColor = Color.Green;//轴标题颜色
chart1.ChartAreas[0].AxisX.LabelStyle.ForeColor = Color.DarkOrange;//坐标轴文字颜色
chart1.ChartAreas[0].AxisY.LabelStyle.ForeColor = Color.DarkOrange;
chart1.Titles[0].ForeColor = Color.Lime;//chart标题前景色
}
由于chart控件被微软这帮老头子搞得太强悍,导致其整个控件的复杂性叹为观止
类型层数多,属性杂,成了想使用它的最大的拦路虎
这里放的是一个实实在在的东西,兴许是大家也想用上的东西,也紧紧包含常用的
没啥多讲的,全部在注释里面了.
直接看代码的注释吧