我正在尝试编写一个类来更新图表数据。我通过Windows窗体创建了图表,它自动生成了Form1.cs和Form1.Designer.cs中的代码
以下是我认为Form1.designer.cs的相关部分:
private void InitializeComponent()
{
System.Windows.Forms.DataVisualization.Charting.ChartArea chartArea1 = new System.Windows.Forms.DataVisualization.Charting.ChartArea();
System.Windows.Forms.DataVisualization.Charting.Legend legend1 = new System.Windows.Forms.DataVisualization.Charting.Legend();
System.Windows.Forms.DataVisualization.Charting.Series series1 = new System.Windows.Forms.DataVisualization.Charting.Series();
System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint1 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(0D, 2D);
System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint2 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(0D, 3D);
System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint3 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(0D, 2D);
System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint4 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(0D, 25D);
System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint5 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(0D, 2D);
System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint6 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(0D, 3D);
System.Windows.Forms.DataVisualization.Charting.DataPoint dataPoint7 = new System.Windows.Forms.DataVisualization.Charting.DataPoint(0D, 0D);
this.tableLayoutPanel1 = new System.Windows.Forms.TableLayoutPanel();
this.chart1 = new System.Windows.Forms.DataVisualization.Charting.Chart();
this.tableLayoutPanel1.SuspendLayout();
((System.ComponentModel.ISupportInitialize)(this.chart1)).BeginInit();
this.SuspendLayout();
我编写了另一个名为UpdateGraph.cs的类,它有一个向图中添加额外点的方法
namespace DataLogger
{
class UpdateGraph
{
public void addGraphPoints()
{
chart1.Series.Points.AddXY(0, 10);
}
}
}
问题是我收到错误消息
名称chart1在当前上下文中不存在
所以,如果有人能解释我如何访问图表来修改数据(或者我应该引用的内容),我会非常感激,因为我现在有点难过。
答案 0 :(得分:0)
你可以尝试这个:
using System.Windows.Forms.DataVisualization.Charting;
class UpdateGraph
{
public Chart Chart1 { get; set; }
public UpdateGRaph(Chart chart)
{
Chart1 = chart;
}
public void AddGraphPoints()
{
Chart1.Series.Points.AddXY(0, 10);
}
}
答案 1 :(得分:0)
Forms Designer将在InitializeComponent()中创建一个本地图表 - 也许有一种方法可以阻止它,但我还没有找到它。 诀窍是让图表脱离控制层次结构。例如,我在Designer.cs中的图表被添加到grpStuff:
this.grpStuff.Controls.Add(chrtStuff);
及其名称也可以在Designer.cs中找到:
chrtStuff.Name = "chartName";
所以 - 在我的代码中,我找到了图表:
chrt = (System.Windows.Forms.DataVisualization.Charting.Chart)grpStuff.Controls("chartName");