110,538
社区成员
发帖
与我相关
我的任务
分享
TreeNode tn = new TreeNode();
tn.Text = "string的名字";
根节点.Nodes.Add(tn); //可实现添加第二级
TreeNode xx = new TreeNode() //创建新的TreeNode,这样会重复吧。。。
/// <summary>
/// 设计器支持所需的方法 - 不要
/// 使用代码编辑器修改此方法的内容。
/// </summary>
private void InitializeComponent()
{
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("节点2");
System.Windows.Forms.TreeNode treeNode2 = new System.Windows.Forms.TreeNode("节点1", new System.Windows.Forms.TreeNode[] {
treeNode1});
System.Windows.Forms.TreeNode treeNode3 = new System.Windows.Forms.TreeNode("节点0", new System.Windows.Forms.TreeNode[] {
treeNode2});
this.panel1 = new System.Windows.Forms.Panel();
this.treeView1 = new System.Windows.Forms.TreeView();
this.panel1.SuspendLayout();
this.SuspendLayout();
//
// panel1
//
this.panel1.Controls.Add(this.treeView1);
this.panel1.Dock = System.Windows.Forms.DockStyle.Fill;
this.panel1.Location = new System.Drawing.Point(0, 0);
this.panel1.Name = "panel1";
this.panel1.Size = new System.Drawing.Size(282, 255);
this.panel1.TabIndex = 0;
//
// treeView1
//
this.treeView1.Location = new System.Drawing.Point(12, 12);
this.treeView1.Name = "treeView1";
treeNode1.Name = "节点2";
treeNode1.Text = "节点2";
treeNode2.Name = "节点1";
treeNode2.Text = "节点1";
treeNode3.Name = "节点0";
treeNode3.Text = "节点0";
this.treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
treeNode3});
this.treeView1.Size = new System.Drawing.Size(258, 231);
this.treeView1.TabIndex = 0;
优化下代码:
TreeNode treeNode1 = new TreeNode("节点2");
TreeNode treeNode2 = new TreeNode("节点1", new TreeNode[] {treeNode1});
TreeNode treeNode3 = new TreeNode("节点0", new TreeNode[] {treeNode2});
TreeView treeView1 = new TreeView();
treeView1.Location = new System.Drawing.Point(12, 12);
treeView1.Name = "treeView1";
treeNode1.Name = "节点2";
treeNode1.Text = "节点2";
treeNode2.Name = "节点1";
treeNode2.Text = "节点1";
treeNode3.Name = "节点0";
treeNode3.Text = "节点0";
treeView1.Nodes.AddRange(new TreeNode[] {treeNode3});
treeView1.Size = new System.Drawing.Size(258, 231);
treeView1.Parent = panel1;
递归不太熟,那就for循环吧。初学者代码一大坨,呵呵!
private void Form1_Load(object sender, EventArgs e)
{
string[] strs = { "aaa", "bbb", "ccc", "ddd", "fff" };
TreeView treeView1 = new TreeView();
treeView1.Name = "treeView1";
treeView1.Location = new System.Drawing.Point(12, 12);
treeView1.Size = new System.Drawing.Size(258, 231);
treeView1.Parent = panel1;
TreeNode[] treenodes = new TreeNode[strs.Length];
treenodes[0] = new TreeNode();
treenodes[0].Name = strs[strs.Length - 1];
treenodes[0].Text = strs[strs.Length - 1];
for (int i=1; i<strs.Length; i++)
{
treenodes[i] = new TreeNode();
treenodes[i].Name = strs[strs.Length - i - 1];
treenodes[i].Text = strs[strs.Length - i - 1];
treenodes[i].Nodes.Add(treenodes[i - 1]);
}
treeView1.Nodes.AddRange(new TreeNode[] { treenodes[strs.Length - 1] });
}
string[] s = new string[] { "aaa", "bbb", "ccc", "ddd", "eee" };
TreeNodeCollection nodes = treeView1.Nodes;
foreach (var item in s)
{
nodes = nodes.Add(item).Nodes;
}
我是有点强迫症了。string[] s = new string[] { "aaa", "bbb", "ccc", "ddd", "eee" };
treeView1.Nodes.Add(s[0]);
TreeNode tn = treeView1.Nodes[0];
foreach (var item in s.Skip(1))
{
tn = tn.Nodes.Add(item);
}
偷个懒改一下,错了也是1楼的。意思是Nodes.Add返回的就是添加的节点。