当前位置:编程学习 > C#/ASP.NET >>

求Winform树状结构

要求:先加载一级节点,
点一级节点时加载二级节点
依次往下;

加载一级节点时,判断有没有子节点,要是有,显示加号,加一个空节点

点击一级节点时,要是有一个空节点,则删除此节点,且读入子节点
要是有多个子节点,说明已经加载了,不处理,
要是没有字节点,说明他根本就没有节点,不用处理 --------------------编程问答-------------------- 自已顶 --------------------编程问答-------------------- 最主要是如何添加和移除空节点 --------------------编程问答-------------------- --------------------编程问答-------------------- 有没有人给个例子.自己写了一半不知道如何移除加进去的空节点 --------------------编程问答-------------------- if(tv.Nodes[1].Text.Trim()=="")
{
     tv.Nodes[1].Remove();  //移除节点文本为空的节点
}

if(tv.Nodes[1].Nodes.Count > 0) //移除当前节点的子节点
{
     tv.Nodes[1].Nodes.Clear();
}

--------------------编程问答-------------------- 上面实现是可以的,双击事件可以,按+号怎么不一样呢.不知道+用那个事件 --------------------编程问答-------------------- TreeNode有个展开事件 展开是Expand 收起是Collapse --------------------编程问答-------------------- 错了 是TreeView的事件 --------------------编程问答-------------------- 可是这样调用就是实现不了:
private void tvMaterial_DoubleClick(object sender, EventArgs e)
        {
            TreeNode FNode = new TreeNode();
            FNode = tvMaterial.SelectedNode;
            if (FNode != null)
            {
                //if (FNode.Nodes[0].Text.Trim() == "")
                if (FNode.Nodes.Count == 1)
                {
                    FNode.Nodes.Clear();
                    //FNode.Nodes.RemoveAt(0);
                    AddTree(Convert.ToInt32(FNode.Tag), FNode);
                }
            }
        }


        private void tvMaterial_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            tvMaterial_DoubleClick(sender, e);

        } --------------------编程问答-------------------- 似乎是点击+不能SelectedNode --------------------编程问答--------------------
        private void tvMaterial_BeforeExpand(object sender, TreeViewCancelEventArgs e)
        {
            TreeNode FNode = new TreeNode();

            FNode = tvMaterial.SelectedNode;
            if (FNode != null)
            {
                //if (FNode.Nodes[0].Text.Trim() == "")
                if (FNode.Nodes.Count == 1)
                {
                    FNode.Nodes.Clear();
                    AddTree(Convert.ToInt32(FNode.Tag), FNode);
                }

            }
            else
            {
                FNode = e.Node;
                if (FNode.Nodes.Count == 1)
                {

                    FNode.Nodes.Clear();
                    AddTree(Convert.ToInt32(FNode.Tag), FNode);
                }
            }

        }

这样都得不到选择的节点 --------------------编程问答-------------------- 资源管理器
补充:.NET技术 ,  C#
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,