C# TreeView 显示不完全

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了C# TreeView 显示不完全相关的知识,希望对你有一定的参考价值。

//目录树设定
dtTemp = Global.pCheckDB.GetDataTableFromDB("SELECT * FROM [tabtree] WHERE ctype = 1");
dtTemp.Columns[0].ColumnName = "编号";
dtTemp.Columns[1].ColumnName = "项目";
dtTemp.Columns[2].ColumnName = "奴属";
if(dtTemp.Rows.Count > 0)

DataRow[] row = dtTemp.Select("奴属 = 0");
foreach(DataRow r in row)

TreeNode node = this.treeViewSchool.Nodes.Add(r[0].ToString(), r[1].ToString());
recursionShow(node, r[0].ToString());


else

this.treeViewSchool.Nodes.Add("1", "请增加项!");



void recursionShow(TreeNode nodes, string id)

DataRow[] row = dtTemp.Select("奴属 = " + id);
MessageBox.Show("上一级ID:"+id+"本级所属项数目:"+row.Length.ToString());
if (row != null)

foreach (DataRow r in row)

TreeNode node = nodes.Nodes.Add(r[0].ToString(), r[1].ToString());
recursionShow(node, r[0].ToString());


参考技术A 楼上的方法可行,也可以
TreeNode recursionShow(TreeNode nodes, string id)

DataRow[] row = dtTemp.Select("奴属 = " + id);
MessageBox.Show("上一级ID:"+id+"本级所属项数目:"+row.Length.ToString());
if (row != null)

foreach (DataRow r in row)

TreeNode node = nodes.Nodes.Add(r[0].ToString(), r[1].ToString());
recursionShow(node, r[0].ToString());




然后那边接收的时候用一个TreeNode接收,
TreeNode newNode = recursionShow(node, r[0].ToString());
treeview1.Nodes.Add(newNode);
参考技术B 问题的根源在于void recursionShow(TreeNode nodes, string id)方法
TreeNode 是值传递 foreach 里面 TreeNode node = nodes.Nodes.Add(r[0].ToString(), r[1].ToString());这一句 是加不到 this.treeViewSchool.Nodes 里的追问

不会吧,能显示,只是同一级目录的两个子目录显示不出来,其他的都行

追答

你把 void recursionShow(TreeNode nodes, string id) 方法 改成 void recursionShow(ref TreeNode nodes, string id)
把nodes 参数变成ref 试试 应该就没问题了

本回答被提问者采纳

C#里treeview如何向指定NAME节点添加子节点?

C#里treeview向指定NAME节点添加子节点时应就这样做:

先要用treenode定义节点对象。

TreeView1.SelectedNode.ChildNodes.Add //给选中的添加。

TreeView1.Nodes[index].ChildNodes.Add //给指定index的节点添加。

TreeView控件用来显示信息的分级视图,如同Windows里的资源管理器的目录。TreeView控件中的各项信息都有一个与之相关的Node对象。

TreeView显示Node对象的分层目录结构,每个Node对象均由一个Label对象和其相关的位图组成。在建立TreeView控件后,我们可以展开和折叠、显示或隐藏其中的节点。

TreeView控件一般用来显示文件和目录结构、文档中的类层次、索引中的层次和其他具有分层目录结构的信息。

参考技术A TreeNode node2=new treeNode("node2")
node2.text="自己定"

TreeView1.Node["NAME"].add(node2) //任意一个节点都可以添加节点集合,即子节点
参考技术B 新建节点
TreeNode treeNode=new TreeNode();
treeNode.Text=“test";
treeNode.Value="test";
添加节点
TreeView1.Nodes[i].ChildNodes[j].ChildNodes.Add(treeNode);
其中i,j分别代表 根节点和根节点下面的子节点
如果还想继续增加 那么 可以加k,l,M。。。等等

以上是关于C# TreeView 显示不完全的主要内容,如果未能解决你的问题,请参考以下文章

关于c#中treeview节点的收缩与展开(.net web)

c#怎么用comboBox绑定treeview控件

C# winform treeview 节点展开状态的图标设置

C#里treeview如何向指定NAME节点添加子节点?

C#动态给treeview控件添加节点和子节点

c#(windows程序)treeview 获得焦点选中