C#如何在TreeView中显示结构化列表 [英] C# How to show structured list in a TreeView

查看:120
本文介绍了C#如何在TreeView中显示结构化列表的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

嘿伙计们,



我有一个我无法解决的问题。我只需要一个提示,如何解决它。



问题:

我从SQL查询中得到以下列表:



GROUP:

01.员工/管理

01.员工/管理

01 。员工/销售

...

02.类型/会员

02.类型/客户



...

等等...



我怎样才能将它变成树视图?像这样懒散:



- 全部

- 01.员工< b>< / b>

---管理





我的尝试之一:

Hey guys,

I have a problem which I cant solve yet. I just need a hint, how to solve it.

Problem:
I get the following list from a sql query:

GROUP:
01. Employees/Administration
01. Employees/Managment
01. Employees/Sales
...
02. Type/Member
02. Type/Customer

...
and so on...

How can I get this into a treeview? To loook like this:

- All
-- 01. Employees<b></b>
--- Administration


One of my tries:

if (rs.RecordCount &gt; 0)
            {
                while (!rs.EOF)
                {
                    tempNode = tree;
                    string[] array = rs.Fields[&quot;GRUPPE&quot;].Value.ToString().Split(&#39;/&#39;);

                    foreach (string str in array)
                    {
                        if (tempNode.Nodes.ContainsKey(str))
                        {
                            tempNode = tree.Nodes[str];
                        }
                        else
                        {
                            TreeNode newNode = new TreeNode();
                            newNode.Name = str;
                            newNode.Text = str;

                            //*** PROBLEM!!!
                            tree.Nodes.Add(newNode);
                            //***
                            tempNode = newNode;
                        }
                    }

                    rs.MoveNext();
                }







基本上,我的问题是如何添加节点第二或第三或第N级?动态地?



希望你理解我的问题?!​​



亲切的问候





它应该是怎样的例子:



http://img198.imageshack.us/img198/5951/9zq.png [ ^

推荐答案

我为此创建了示例。希望它会有所帮助



data.txt

I created sample for this. Hope it will help

data.txt
Employees/Administration/Teamleader
Employees/Administration/Manager
Employees/Sales/Manager
Employees/Sales/Executive










string []str = File.ReadAllLines(@"D:\data.txt");
          TreeNode root = new TreeNode();
          root.Text = "All";

          foreach (string s in str)
          {
              string[] arr = s.Split('/');
              TreeNode department = null;
              if (!root.Nodes.ContainsKey(arr[1]))
              {

                  root.Nodes.Add(arr[1], arr[1]);
              }

            department =  root.Nodes[arr[1]];
            department.Nodes.Add(new TreeNode(arr[2]));
          }

          treeView1.Nodes.Add(root);


好的,我现在想出来了。请看下面我的代码示例,到目前为止我的工作正常。





Ok i figured it out now. Please see below my code sample, which works fine for me so far.


string[] str = File.ReadAllLines(@"C:\test\test.txt");
            TreeNode root = new TreeNode();
            root.Text = "All";

            foreach (string s in str)
            {
                string[] arr = s.Split('/');
                TreeNode parent = root;

                foreach (string ss in arr)
                {
                    if (!parent.Nodes.ContainsKey(ss))
                    {
                        TreeNode newNode = new TreeNode();
                        newNode.Name = ss;
                        newNode.Text = ss;
                        parent.Nodes.Add(newNode);
                        parent = newNode;
                    }
                    else
                    {
                        parent = parent.Nodes[ss];
                    }
                }
            }
            treeView1.Nodes.Add(root);
            treeView1.ExpandAll();


这篇关于C#如何在TreeView中显示结构化列表的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆