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每次都能创建不同数量的树?
如果您的树需要从数据源动态加载,您应该在表单加载事件中执行此操作,而不是直接从设计器类进行更改。
或者,如果树永远不会改变,您可以使用设计器的属性工具箱中的Nodes属性在那里添加节点。
从设计器类更改代码从来都不是一个好的做法,因为如果您在表单设计器屏幕中对表单进行任何操作,则更改将丢失