解决方案 »
- c#中,部分方法为什么不能有返回值呢?
- 关于获取动态插入Gridview中控件的ID的问题,请高手帮帮忙。在线等待……
- 菜单栏与工具栏的绑定
- >>>>>>----------设置窗体控件不可编辑-----------------------<<<<<<<<
- 通过webbrowser设置html里textbox的字体颜色
- 急急急急!!!!!!自定义控件的动态改变位置与大小
- C# RichTextBox 水平滚动条的问题?
- Microsoft Content Management Server白痴问题
- 用控制台程序创建一个进程,并向这个进程发送消息?
- CEF Xilium.CefGlue设置独立缓存求帮忙
- 帮忙查一下sql速成版的最大连接数
- WPF,自定义控件如何使用Name
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent(); SetupControls();
} public void SetupControls()
{
string[] data =
{
"Flowmaster",
"Flowmaster\\network1",
"Flowmaster\\network2",
"Flowmaster\\project1",
"Flowmaster\\project1\\network3",
"Flowmaster\\project2",
"Flowmaster\\project2\\network4"
};
CreateTree(data);
}
public void CreateTree(string[] data)
{
string[] roots = data.Select(a => a.Split('\\')[0]).Distinct().ToArray();
foreach (string path in roots)
{
TreeNode root = new TreeNode();
root.Text = path;
root.Name = path;
CreateSubTree(data, root);
treeView1.Nodes.Add(root);
}
}
public void CreateSubTree(string[] data, TreeNode parent)
{
string[] childs =data.
Where(a => a.IndexOf(parent.Name) == 0 && a != parent.Name).
Select(a=>a.Remove(0,a.IndexOf('\\')+1)).ToArray();
string[] roots = childs.Select(a => a.Split('\\')[0]).Distinct().ToArray();
foreach (string childnode in roots)
{
TreeNode node = new TreeNode();
node.Text = childnode;
node.Name = childnode;
CreateSubTree(childs, node);
parent.Nodes.Add(node);
}
}
}