c#设计器不能处理代码

本文关键字:处理 代码 不能 | 更新日期: 2023-09-27 17:50:59

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");

这是相关的代码。我更改了form .designer类,以便它根据项目列表生成项目并将它们添加到列表中。它说我不能修改设计器,还有别的办法吗?

编辑:好的,所以不要编辑表单1。但是假设我想基于寄存器或io的个数来构建树,这个数是可以变化的。如何让表单1每次都能创建不同数量的树?

c#设计器不能处理代码

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

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

从设计器类更改代码从来都不是一个好的做法,因为如果您在表单设计器屏幕中对表单进行任何操作,则更改将丢失