List<string> devices = new List<string>();
devices.Add("Register 1");
devices.Add("Register 2");
devices.Add("AIO 1");
TreeNode[] registers = new TreeNode[2];
TreeNode[] AIOs = new TreeNode[1];
int r = 0;
int a = 0;
foreach (string name in devices)
{
if (name.Contains("Register"))
{
registers[r] = new TreeNode("Register " + (r + 1));
registers[r].Name = "Register " + (r + 1);
registers[r].Text = "Register " + (r + 1);
r++;
} if (name.Contains("AIO"))
{
AIOs[a] = new TreeNode("AIO " + (a + 1));
AIOs[a].Name = "AIO " + (a + 1);
AIOs[a].Text = "AIO " + (a + 1);
a++;
}
}
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("Controller");
System.Windows.Forms.TreeNode treeNode6 = new System.Windows.Forms.TreeNode("Registers", registers);
System.Windows.Forms.TreeNode treeNode9 = new System.Windows.Forms.TreeNode("AIOs", AIOs);
System.Windows.Forms.TreeNode treeNode10 = new System.Windows.Forms.TreeNode("Router");
System.Windows.Forms.TreeNode treeNode11 = new System.Windows.Forms.TreeNode("Store");
这是相关的代码。我更改了form1.designer类,以便根据项目列表生成它们并将它们添加到列表中。它说我无法修改设计师,无论如何?
编辑:好吧所以不要编辑表单1.但是我想说我想根据有多少寄存器或aios来建立树,这个数字可以变化。我怎样才能使表单1每次都能创建不同数量的树?
答案 0 :(得分:0)
如果需要从数据源动态加载树,则应在表单加载事件中执行此操作,而不是直接从设计器类更改。
或者,如果树永远不会更改,您可以使用设计器的“属性”工具箱中的“节点”属性在那里添加节点。
从Designer类更改代码绝不是一个好习惯,因为如果您在“表单设计器”屏幕中对表单执行任何操作,则更改将会丢失