C#Designer无法处理代码

时间:2015-05-27 23:50:45

标签: c#

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每次都能创建不同数量的树?

1 个答案:

答案 0 :(得分:0)

如果需要从数据源动态加载树,则应在表单加载事件中执行此操作,而不是直接从设计器类更改。

或者,如果树永远不会更改,您可以使用设计器的“属性”工具箱中的“节点”属性在那里添加节点。

从Designer类更改代码绝不是一个好习惯,因为如果您在“表单设计器”屏幕中对表单执行任何操作,则更改将会丢失