c#怎么获取treeview的子节点并单击触发事件

c#怎么获取treeview的子节点并单击触发事件,第1张

这个很简单,只需要一句代码,

treeview1_AfterSelect(treeview1SelectedNode, null);

treeview1为树控件的名字

在需要的地方加入该行代码,即可触发树控件的"选择改变后“ 这个事件

参数1为:当前树控件选中的节点,参数2,带入null值即可

调用前请生成treeview1_AfterSelect事件,事件内做什么事情那就由你决定了

哈哈,是不是很简单? 给分啊

(TreeView名)Nodes---------->获取所有根节点

(TreeView名)Nodes[0]Nodes[0]name------->获取第一个根节点下的第一个子节点的名字

一个Nodes表示节点的一个深度

只有一个Nodes是获取根节点中括号中加数字表示第几个节点

TreeView的数据存储格式一般如下:

(节点编号,节点名称,节点值,上级节点编号)

遍历TreeView一般用递归算法

public void LoadTree(TreeNode tn)

{

if(tn == null) //加载根节点

{

//从数据库获取上级节点编号=0的DataSet

foreach(DataRow dr in dsTables[0]Rows)

{

TreeNode newNode=new TreeNode(dr["节点名称"] , dr["节点编号"]);

tnNodesAdd(newNode);

LoadTree(newNode);//递归

}

}

else

{

//获取当前节点的下一层节点DataSet

foreach(DataRow dr in dsTables[0]Rows)

{

TreeNode newNode=new TreeNode(dr["节点名称"] , dr["节点编号"]);

tnNodesAdd(newNode);

LoadTree(newNode);//递归

}

}

}

private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)

{

MessageBoxShow(eNodeText);

}

private void TVdepartment_ItemDrag(object sender, ItemDragEventArgs e)//左键拖动

{

if (eButton == MouseButtonsLeft)

{

DoDragDrop(eItem, DragDropEffectsMove);

}

}

private void TVdepartment_DragEnter(object sender, DragEventArgs e)

{

if (eDataGetDataPresent("SystemWindowsFormsTreeNode"))

{

eEffect = DragDropEffectsMove;

}

else

{

eEffect = DragDropEffectsNone;

}

}

private void TVdepartment_DragDrop(object sender, DragEventArgs e)//拖动

{ //获得拖放中的节点

TreeNode moveNode = (TreeNode)eDataGetData("SystemWindowsFormsTreeNode");

//根据鼠标坐标确定要移动到的目标节点

Point pt;

TreeNode targeNode;

pt = ((TreeView)(sender))PointToClient(new Point(eX, eY));

targeNode = thisTVdepartmentGetNodeAt(pt);

//如果目标节点无子节点则添加为同级节点,反之添加到下级节点的未端

TreeNode NewMoveNode = (TreeNode)moveNodeClone();

if (targeNodeNodesCount == 0)

{

targeNodeParentNodesInsert(targeNodeIndex, NewMoveNode);

}

else

{

targeNodeNodesInsert(targeNodeNodesCount, NewMoveNode);

}

//更新当前拖动的节点选择

TVdepartmentSelectedNode = NewMoveNode;

//展开目标节点,便于显示拖放效果

targeNodeExpand();

//移除拖放的节点

moveNodeRemove();

}

风某提供两种方式:

第一种是在TreeView的AfterSelect事件中,

TreeViewEventArgs

e的这个e具备了Node的属性,也就是说这个eNodeNodes就是被选中的节点的子节点组合。

第二种方式你可以使用treeView1SelectedNode的Nodes属性,也就是thistreeView1SelectedNodeNodes,就是TreeView的被选中的树节点子节点了

//循环遍历TreeView的每个节点

private void button1_Click(object sender, EventArgs e)

{

ShowNodes(treeView1Nodes);

}

//遍历所有节点

private void ShowNodes(TreeNodeCollection tnodes)

{

foreach (TreeNode node in tnodes)

{

if (nodeText == "指定的节点名")

{

//给指定的节点增加子节点

nodeNodesAdd("子节点名");

}

ShowNodes(nodeNodes);

}

}

以上就是关于c#怎么获取treeview的子节点并单击触发事件全部的内容,包括:c#怎么获取treeview的子节点并单击触发事件、怎么样获取TreeView节点、急 在线等 遍历TreeView 获取所有节点等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9453773.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-28
下一篇2023-04-28

发表评论

登录后才能评论

评论列表(0条)

    保存