如何在运行时动态地在CODESYS中编写文本列表?
我使用文本列表作为源来显示在组合框(下拉列表框)中
提前致谢
答案 0 :(得分:0)
首先,您需要使用ComponentManager
获取文本列表工厂来创建实例:
const Guid TextListFactoryGuid = new Guid("{7a60005b-e690-45b3-8aca-cd15950a3e73}");
var textListFactory = (IObjectFactory)ComponentManager.Singleton.CreateInstance(TextListFactoryGuid);
然后,创建一个测试列表对象本身的实例:
var textListObject = (ITextListObject)textListFactory.Create();
需要将文本列表对象添加到对象管理器中:
SystemInstances.ObjectManager.AddObject(
SystemInstances.Engine.Projects.PrimaryProject.Handle,
parentGuid,
Guid.NewGuid(),
textListObject,
textListName,
-1);
最后,既然您已拥有ITextListObject
,就可以为id
和item
添加字符串:
textListObject.AddEmptyRow();
var textListElement = textListObject.GetTextListRowAt(textListObject.Count - 1);
textListElement.ID = id;
textListElement.Default = item;
希望这就是你所追求的目标