C# TreeView基本操作及其节点增,删,改(3级节点)

TreeView 节点操作:

先选择某一节点:
添加子节点:
            TreeNode temp = new TreeNode("name");
            treeView1.Name = "name";
            treeView1.SelectedNode.Nodes.Add(temp);
添加平级节点:
            TreeNode temp = new TreeNode("tree2");
            treeView1.SelectedNode.Parent.Nodes.Add(temp);
编辑节点:
            treeView1.SelectedNode.Text = "NewName";
            treeView1.SelectedNode.Name = "NewName";
删除节点:
            treeView1.SelectedNode.Remove();
展开节点:
    treeView1.SelectedNode.ExpandAll();
折叠节点:
            treeView1.SelectedNode.Toggle();

TreeView浏览磁盘目录:

*引用System.IO命名空间。

*重写OnLoad事件,调用Directory.GetLogicalDrives()函数索引此计算机上逻辑驱动器名称。

*添加treeView控件,在treeView上添加驱动盘。

protected override void OnLoad(EventArgs e)
{
            TreeNode computer = treeView1.Nodes.Add("计算机");
            foreach (var item in Directory.GetLogicalDrives())
            {
                computer.Nodes.Add(item);
            }
}

private void treeView1_AfterExpand(object sender, TreeViewEventArgs e)
{
            foreach (TreeNode node in e.Node.Nodes)
            {
                if (node.Nodes.Count == 0)
                {
                    string path = node.FullPath.Remove(0, 4);
                    DirectoryInfo dir = new DirectoryInfo(path);
                    try
                    {
                        foreach (var folder in dir.GetDirectories())
                        {
                            node.Nodes.Add(folder.Name);
                        }
                    }
                    catch (Exception)
                    {
                        continue;
                    }
                }
            }
}

TreeView操作代码:

/// <summary>
/// Treeview添加一级节点
/// TreeV:TreeVie TeamName:一级节点名称
/// </summary>
public static void TreeViewAddTeam(TreeView TreeV, string TeamName)
{

    TreeNode newnode = new TreeNode(TeamName);

    newnode.Name = TeamName;

    newnode.Text = TeamName;

    //newnode.ContextMenuStrip = MenuStripTeam;

    TreeV.Nodes.Add(TeamName);

    TreeV.Nodes[TeamName].Expand();//展开TreeView节点

}

 

/// <summary>
/// Treeview添加二级节点
/// TreeV:TreeVie node1:一级节点名称 newNode:二级节点名称
/// </summary>
public static void TreeViewAddTeam(TreeView TreeV, string node1, string newNode)
{

    ContextMenuStrip MenuStripTeam = new ContextMenuStrip();

    MenuStripTeam.Text = "newNode";

    TreeNode newnode = new TreeNode(newNode);

    newnode.Name = newNode;

    newnode.Text = newNode;

    newnode.ContextMenuStrip = MenuStripTeam;

    TreeV.Nodes[node1].Nodes.Add(newnode);

    TreeV.Nodes[node1].Expand();//展开TreeView节点

}

 

/// <summary>
/// Treeview添加二级节点
/// TreeV:TreeVie  index:一级节点索引 newNode:二级节点名称
/// </summary>
public static void TreeViewAddTeam(TreeView TreeV, int index, string newNode)
{

    ContextMenuStrip MenuStripTeam = new ContextMenuStrip();

    MenuStripTeam.Text = "newNode";

    TreeNode newnode = new TreeNode(newNode);

    newnode.Name = newNode;

    newnode.Text = newNode;

    newnode.ContextMenuStrip = MenuStripTeam;

    TreeV.Nodes[index].Nodes.Add(newnode);

    TreeV.Nodes[index].Expand();//展开TreeView节点

}

 

/// <summary>
/// Treeview在二级节点中添加三级节点
/// index:一级节点索引 node2:二级节点名称 newNode:三级节点名称
/// </summary>
/// <param name="TeamName"></param>
/// <param name="MachineName"></param>
public static void TreeViewAddMachines(TreeView TreeV, int index, string node2, string node3)
{

    TreeNode newnode = new TreeNode(node3);

    newnode.Tag = node3.Clone();

    newnode.Name = node3;

    TreeV.Nodes[index].Nodes[node2].Nodes.Add(newnode);

    TreeV.Nodes[index].Nodes[node2].Expand();

}

 

/// <summary>
/// Treeview在二级节点中添加三级节点
/// node1:一级节点名称 node2:二级节点名称 newNode:三级节点名称
/// </summary>
/// <param name="TeamName"></param>
/// <param name="MachineName"></param>
public static void TreeViewAddMachines(TreeView TreeV, string node1, string node2, string node3)
{

    TreeNode newnode = new TreeNode(node3);

    newnode.Tag = node3.Clone();

    newnode.Name = node3;

    TreeV.Nodes[node1].Nodes[node2].Nodes.Add(newnode);

    TreeV.Nodes[node1].Nodes[node2].Expand();

}

 

/// <summary>
/// Treeview选中一级节点中添加节点
/// TreeV:TreeVie index:一级节点索引 text:节点名称
/// </summary>
/// <param name="newNode"></param>
public static void TreeViewAddNodes(TreeView TreeV, int index, string text)
{

    TreeNode node = new TreeNode(text);

    node.Tag = text.Clone();

    node.Name = text;

    TreeV.Nodes[TreeV.SelectedNode.Name].Nodes.Add(node);

    TreeV.Nodes[index].Expand();//展开tree,TreeName TreeView的节点名称

}

 

/// <summary>
/// Treeview选中一级节点中添加节点
/// TreeV:TreeVie node1:一级节点名称 text:节点名称
/// </summary>
/// <param name="newNode"></param>
public static void TreeViewAddNodes(TreeView TreeV, string node1, string text)
{

    TreeNode node = new TreeNode(text);

    node.Tag = text.Clone();

    node.Name = text;

    TreeV.Nodes[TreeV.SelectedNode.Name].Nodes.Add(node);

    TreeV.Nodes[node1].Expand();//展开tree,TreeName TreeView的节点名称

}

 

/// <summary>
/// 根据索引清除一级节点
/// TreeV:TreeView index:一级节点索引  
/// </summary>
/// <param name="node"></param>
public static void TreeViewDelNode(TreeView TreeV, int index)
{

    TreeV.Nodes[index].Remove();

}

 

/// <summary>
/// 根据名称清除一级节点
/// TreeV:TreeView node1:一级节点名称  
/// </summary>
/// <param name="node"></param>
public static void TreeViewDelNode(TreeView TreeV, string node1)
{

    TreeV.Nodes[node1].Remove();

}

 

/// <summary>
/// 根据索引清除二级节点
/// TreeV:TreeView index:一级节点索引    node2:二级节点名称
/// </summary
/// <param name="node"></param>
public static void TreeViewDelNode(TreeView TreeV, int index, string node2)
{

    TreeV.Nodes[index].Nodes[node2].Remove();

}

 

/// <summary>
/// 根据名称清除二级节点
/// TreeV:TreeView inode1:一级节点名称     node2:二级节点名称
/// </summary>
/// <param name="node"></param>
public static void TreeViewDelNode(TreeView TreeV, string node1, string node2)
{

    TreeV.Nodes[node1].Nodes[node2].Remove();

}

 

/// <summary>
/// 根据索引清除三级节点
/// TreeV:TreeView index:一级节点索引   node2:二级节点名称  node3:三级节点名称
/// </summary>
/// <param name="node"></param>
public static void TreeViewDelNode(TreeView TreeV, int index, string node2, string node3)
{

    TreeV.Nodes[index].Nodes[node2].Nodes[node3].Remove();

}

 

/// <summary>
/// 根据名称清除三级节点
/// TreeV:TreeView inode1:一级节点名称   node2:二级节点名称  node3:三级节点名称
/// </summary>
/// <param name="node"></param>
public static void TreeViewDelNode(TreeView TreeV, string node1, string node2, string node3)
{

    TreeV.Nodes[node1].Nodes[node2].Nodes[node3].Remove();

}

 

/// <summary>
/// TreeView删除选中Node
/// </summary>
public static void TreeViewDelNode(TreeView TreeV)
{

    try

    {

        TreeV.Nodes.Remove(TreeV.SelectedNode);

    }

    catch (Exception)

    {

        throw;
    }
 
}

 

/// <summary>
/// Treeview在节点添加子节点组
/// index:一级节点索引  node2:二级节点名称
/// </summary>
public static void TreeViewAddTeam(TreeView TreeV, int index, string node2, TreeNode[] childs)
{

    TreeNode newnode = new TreeNode(node2, childs);

    newnode.Name = node2;

    newnode.Text = node2;

    //newnode.ContextMenuStrip = MenuStripTeam;

    TreeV.Nodes[index].Nodes.Add(newnode);

    TreeV.Nodes[index].Expand();

}

 

/// <summary>
/// Treeview在节点添加子节点组
/// inode1:一级节点名称  node2:二级节点名称
/// </summary>
public static void TreeViewAddTeam(TreeView TreeV, string node1, string node2, TreeNode[] childs)
{

    TreeNode newnode = new TreeNode(node2, childs);

    newnode.Name = node2;

    newnode.Text = node2;

    //newnode.ContextMenuStrip = MenuStripTeam;

    TreeV.Nodes[node1].Nodes.Add(newnode);

    TreeV.Nodes[node1].Expand();

}

 

/// <summary>
/// 更新指定三级节点名称
/// inode1:一级节点名称   node2:二级节点名称  node3:三级节点原名称 newName:三级节点新名称
/// </summary>
/// <param name="parentNode"></param>
/// <param name="node"></param>
public static void TreeViewUpdateNode(TreeView TreeV, string node1,  string node2, string node3, string newName)
{

    TreeV.Nodes[node1].Nodes[node2].Nodes[node3].Remove();

    TreeNode newnode = new TreeNode(newName);

    newnode.Tag = newName.Clone();

    newnode.Name = newName;

    TreeV.Nodes[node1].Nodes[node2].Nodes.Add(newnode);

}

 

/// <summary>
/// 更新指定三级节点名称
/// index:一级节点索引   node2:二级节点名称  node3:三级节点原名称 newName:三级节点新名称
/// </summary>
/// <param name="parentNode"></param>
/// <param name="node"></param>
public static void TreeViewUpdateNode(TreeView TreeV, int index, string node2, string node3, string newName)
{

    TreeV.Nodes[index].Nodes[node2].Nodes[node3].Remove();

    TreeNode newnode = new TreeNode(newName);

    newnode.Tag = newName.Clone();

    newnode.Name = newName;

    TreeV.Nodes[index].Nodes[node2].Nodes.Add(newnode);

}

 

/// <summary>
/// 更新特定二级节点组名称
/// index:一级节点索引   node2:二级节点名称  newName:二级节点新名
/// </summary>
/// <param name="parentNode"></param>
/// <param name="newText"></param>
public static void TreeViewUpdateTeam(TreeView TreeV, int index, string node2, string newName)
{

    int count = TreeV.Nodes[index].Nodes[node2].Nodes.Count;

    TreeNode[] childNodes = new TreeNode[count];

    if (count > 0)

    {

        for (int j = 0; j < count; j++)

        {

            childNodes[j] = new TreeNode();

            childNodes[j].Text = TreeV.Nodes[index].Nodes[node2].Nodes[j].Text;

            childNodes[j].Name = TreeV.Nodes[index].Nodes[node2].Nodes[j].Name;

        }

    }

    TreeV.Nodes[index].Nodes[node2].Remove();

 

    TreeNode newnode = new TreeNode(newName, childNodes);

    newnode.Name = newName;

    TreeV.Nodes[index].Nodes.Add(newnode);

    TreeV.Nodes[index].Expand();

}

 

/// <summary>
/// 更新特定二级节点组名称
/// inode1:一级节点名称    node2:二级节点名称  newName:二级节点新名
/// </summary>
/// <param name="parentNode"></param>
/// <param name="newText"></param>
public static void TreeViewUpdateTeam(TreeView TreeV, string node1, string node2, string newName)
{

    int count = TreeV.Nodes[node1].Nodes[node2].Nodes.Count;

    TreeNode[] childNodes = new TreeNode[count];

    if (count > 0)
    {

        for (int j = 0; j < count; j++)
        {

            childNodes[j] = new TreeNode();

            childNodes[j].Text = TreeV.Nodes[node1].Nodes[node2].Nodes[j].Text;

            childNodes[j].Name = TreeV.Nodes[node1].Nodes[node2].Nodes[j].Name;

        }

    }
    TreeV.Nodes[node1].Nodes[node2].Remove(); 

    TreeNode newnode = new TreeNode(newName, childNodes);

    newnode.Name = newName;

    TreeV.Nodes[node1].Nodes.Add(newnode);

    TreeV.Nodes[node1].Expand();

}

  • 2
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

无熵~

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值