我有非常相似的图表在我的c#表单应用程序(10-20).我如何用一个方法来编程这个图表,我可以将图表名称作为变量传递?&



我有非常相似的图表在我的c#表单应用程序(10-20)(Chart1,Chart2,Chart3.....)。这两种图表的唯一不同之处在于数据序列。通常我必须在我的项目中重复相同的代码10-20次。

当我可以将图表名称作为变量传递时,我如何使用一个可以多次调用的方法来编程图表呢?我找了很多,但没有找到真正的解决方案。

我的一个图表代码如下:

public void Draw_Chart()
{
chart1.Series.Clear();
chart1.Titles.Clear();
chart1.Legends.Clear();
var newSeries_1 = new Series();
var newSeries_2 = new Series();
newSeries_1.ChartType = SeriesChartType.Line;
newSeries_2.ChartType = SeriesChartType.Line;
chart1.Series.Add(newSeries_1);
chart1.Series.Add(newSeries_2);
List_X_Axis.Clear();
for (int w = 0 ; w <= 940; w++)
{
parameter_value_chartX[w] = w;
//parameter_value_chartY1[w] = 150;
//parameter_value_chartY1[w] = 250;
}

newSeries_1.Points.DataBindXY(parameter_value_chartX, parameter_value_chartY1);
newSeries_2.Points.DataBindXY(parameter_value_chartX, parameter_value_chartY2);
chart1.BackColor = Color.Gray;
chart1.ChartAreas[0].AxisX.Title = ".";
chart1.ChartAreas[0].AxisY.Title = "mm";
chart1.ChartAreas[0].AxisY.TitleForeColor = Color.Cyan;
chart1.ChartAreas[0].AxisY.LabelStyle.ForeColor = Color.Cyan;
chart1.ChartAreas[0].AxisX.Minimum = 0d;
chart1.Series[0].Color = Color.Cyan;
chart1.ChartAreas[0].AxisY.Minimum = cur_scale_min;
chart1.ChartAreas[0].AxisY.Maximum = cur_scale_max;
chart1.ChartAreas[0].AxisY2.Enabled = AxisEnabled.True;
chart1.ChartAreas[0].AxisY2.Minimum = pos_scale_min;
chart1.ChartAreas[0].AxisY2.Maximum = pos_scale_max;
chart1.ChartAreas[0].AxisY2.Title = "% of Max. Current";
chart1.ChartAreas[0].AxisY2.TitleForeColor = Color.Yellow;
chart1.ChartAreas[0].AxisY2.LabelStyle.ForeColor = Color.Yellow;
chart1.ChartAreas[0].AxisY2.MajorGrid.LineColor = Color.Silver;
chart1.ChartAreas[0].AxisY2.MajorTickMark.LineColor = Color.Silver;
chart1.Series[1].YAxisType = AxisType.Secondary;
chart1.Series[1].Color = Color.Yellow;
}
public void Draw_Chart(Chart chart, Series[] series)
{
...
chart.Series.Clear();
series.ForEach(s=>chart.Series.Add(s));
...
}

我找到了解决方案。以以下方式回复Ralf的评论:

...    
Draw_Chart(chart1);
...    
Draw_Chart(chart2);
...    
Draw_Chart(chart3);
...

public void Draw_Chart(Chart chart)
{
chart.Series.Clear();
chart.Titles.Clear();
chart.Legends.Clear();
var newSeries_1 = new Series();
var newSeries_2 = new Series();
newSeries_1.ChartType = SeriesChartType.Line;
newSeries_2.ChartType = SeriesChartType.Line;
chart.Series.Add(newSeries_1);
chart.Series.Add(newSeries_2);
...
}

相关内容

最新更新