1

我是使用 c# 编程的新手,我正在为 Wonderware 的 ArchestrA IDE 创建一个应用程序对象。

我想制作一个带有复选框列表的标签页,该列表是根据 configtime 中的对象列表创建的,但我不知道如何将此列表从 configtime 传递给编辑器。

这是代码的摘录:

配置时间中的代码:

public class Surveillance_AppConfigtime : ConfigtimeBase
{ 
    public List<Primitive> _tEnginePrimitives;

    private void Surveillance_AppConfigtime_ConfigtimeInitialize(object sender)
    {
    _tEnginePrimitives = new List<Primitive>();

    _tEnginePrimitives.Add(new Primitive("Scheduler.ScanCyclesCnt", MxDataType.MxInteger));
    _tEnginePrimitives.Add(new Primitive("Scheduler.ScanOverrunsCnt", MxDataType.MxInteger));
    _tEnginePrimitives.Add(new Primitive("Scheduler.ScanOverrunsConsecCnt", MxDataType.MxInteger));
    _tEnginePrimitives.Add(new Primitive("Scheduler.ScanPeriod", MxDataType.MxInteger));
    _tEnginePrimitives.Add(new Primitive("Scheduler.TimeIdleAvg", MxDataType.MxInteger));
    _tEnginePrimitives.Add(new Primitive("Engine.ProcessCPULoad", MxDataType.MxInteger,true));
    _tEnginePrimitives.Add(new Primitive("ScanState", MxDataType.MxBoolean));
    }
}

编辑器中的代码:

public partial class Surveillance_AppEditor : ArchestraEditorFramework.aaBaseEditorForm
{
    TabPage enginePage = new TabPage("Engine");
    CheckBox _cb = new CheckBox();
    private int y = 0;

    public Surveillance_AppEditor()
    {   
        //enginePage

        foreach (Primitive oPrimitive in _tEnginePrimitives)
        {
            _cb = new CheckBox();
            _cb.Location = new Point(10, y);
            _cb.Name = oPrimitive.Name;
            platformPage.Controls.Add(_cb);
            y += 15;
        }
        MainTabControl.TabPages.Add(enginePage);
    }
}

希望任何人都可以帮助我。先感谢您!

4

0 回答 0