C++ cli 如何为滚动图形创建新的曲线项?

C++ cli 如何为滚动图形创建新的曲线项?,c++-cli,zedgraph,C++ Cli,Zedgraph,我正在尝试使用zedgraph创建一个滚动图。我使用了网站上给出的代码 . 它工作正常。示例中的图形已使用curveitem实现,如下所示: if ( zedGraphControl2->GraphPane->CurveList->Count <= 0 ) return; // Get the first CurveItem in the graph LineItem ^curve = dynamic_cast<LineItem ^>(zedGrap

我正在尝试使用zedgraph创建一个滚动图。我使用了网站上给出的代码 . 它工作正常。示例中的图形已使用curveitem实现,如下所示:

if ( zedGraphControl2->GraphPane->CurveList->Count <= 0 )
    return;

// Get the first CurveItem in the graph
LineItem ^curve = dynamic_cast<LineItem ^>(zedGraphControl2->GraphPane->CurveList[0]);

if(curve == nullptr)
    return;


// Get the PointPairList
IPointListEdit ^list = dynamic_cast <IPointListEdit^>(curve->Points);

// If this is null, it means the reference at curve.Points does not
// support IPointListEdit, so we won't be able to modify it
if ( list == nullptr)
   return;

// Time is measured in seconds
double time = (Environment::TickCount - tickStart);

Output_data = CreateVariable(0);// User defined function


list->Add(time, Output_data);  
if(zedGraphControl2->GraphPane->CurveList->Count GraphPane->CurveList[0]);
如果(曲线==nullptr)
返回;
//获取点对列表
IPointListed^list=动态投影(曲线->点);
//如果该值为空,则表示curve.Points处的引用不存在
//支持IPointListEdit,因此我们无法修改它
if(list==nullptr)
返回;
//时间以秒为单位
double time=(环境::TickCount-tickStart);
输出_data=CreateVariable(0);//用户定义函数
列表->添加(时间、输出数据);
我试图通过附加以下代码来创建第二条曲线:
LineItem^curve1=dynamic_cast(zedGraphControl2->GraphPane->CurveList[1]);
如果(曲线1==nullptr)
返回;
//获取点对列表
IPointListed ^list1=动态投影(曲线1->点);
//如果该值为空,则表示curve.Points处的引用不存在
//支持IPointListEdit,因此我们无法修改它
if(list1==nullptr)
返回;
//时间以秒为单位
double time=(环境::TickCount-tickStart);
输出_data=CreateVariable(0);//用户定义函数
列表1->添加(时间,输出数据);}
现在的问题是如何创建第二个行项目

如果我键入: LineItem ^curve1=动态投影(zedGraphControl2->GraphPane->CurveList[1]);
它在调试期间显示错误,表示CurveList[1]不存在

在访问zedGraphControl2->GraphPane->CurveList[1](因为它还不存在)之前,需要首先使用GraphPane对象上的AddCurve()方法添加它

这也将返回新创建的曲线,您可以将其指定给curve1

LineItem ^curve1 = dynamic_cast<LineItem ^>(zedGraphControl2->GraphPane->CurveList[1]);

if(curve1 == nullptr)
    return;

// Get the PointPairList
IPointListEdit ^list1 = dynamic_cast <IPointListEdit^>(curve1->Points);

// If this is null, it means the reference at curve.Points does not
// support IPointListEdit, so we won't be able to modify it
if ( list1 == nullptr)
    return;

// Time is measured in seconds
double time = (Environment::TickCount - tickStart);

Output_data = CreateVariable(0);// User defined function    

list1->Add(time, Output_data); }