C# 公共控件之TreeView

本文详细介绍了如何使用TreeView控件进行节点的初始化、添加、删除、重命名以及响应鼠标右键和双击事件的方法。通过具体代码示例,读者可以学习到如何实现节点的上下文菜单、添加子节点、根节点,以及如何清空TreeView控件。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、初始化控件,添加根节点,子节点

public Form1()
{
    InitializeComponent();
    InitTreeView();
}
private void InitTreeView()
{
    TreeNode parrentNode1 = treeView1.Nodes.Add("父节点1");
    parrentNode1.Nodes.Add("子节点1");
    parrentNode1.Nodes.Add("子节点2");
    TreeNode parrentNode2 = treeView1.Nodes.Add("父节点2");
    parrentNode2.Nodes.Add("子节点1");
    parrentNode2.Nodes.Add("子节点2");
}

2、添加treeview菜单contextMenuStrip1,contextMenuStrip2 ,右键操作

private void treeView1_MouseDown(object sender, MouseEventArgs e)
{
    if (e.Button == MouseButtons.Right)
    {
        Point ClickPoint = new Point(e.X, e.Y);
        int x = e.X;
        int y = e.Y;
        TreeNode CurrentNode = treeView1.GetNodeAt(ClickPoint);
        if (CurrentNode is TreeNode)//判断你点的是不是一个节点
        {
            treeView1.SelectedNode = CurrentNode;
            CurrentNode.ContextMenuStrip = this.contextMenuStrip1;
            contextMenuStrip1.Show(MousePosition);
        }
        else
        {
            treeView1.ContextMenuStrip = this.contextMenuStrip2;
            contextMenuStrip2.Show(MousePosition);
        }
    }
}

3、菜单操作

private void 添加子节点ToolStripMenuItem_Click(object sender, EventArgs e)
{
    treeView1.SelectedNode.Nodes.Add("新节点");
}

private void 删除当前节点ToolStripMenuItem_Click(object sender, EventArgs e)
{
    treeView1.SelectedNode.Remove();
}

private void 添加根节点ToolStripMenuItem_Click(object sender, EventArgs e)
{
    treeView1.Nodes.Add("父节点");
}

private void 清空ToolStripMenuItem_Click(object sender, EventArgs e)
{
    treeView1.Nodes.Clear();
}

private void 重命名ToolStripMenuItem_Click(object sender, EventArgs e)
{
    treeView1.LabelEdit = true;//不可缺少
    treeView1.SelectedNode.BeginEdit();
}

4、添加 双击节点,编辑重命名

private void treeView_DoubleClick(object sender, EventArgs e)
{
    treeView1.LabelEdit = true;//不可缺少
    treeView1.SelectedNode.BeginEdit();
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值