读书人

点击treeView某节点在listview中显示

发布时间: 2012-01-20 18:53:53 作者: rapoo

求助:点击treeView某节点,在listview中显示其所有子节点
在C#中要实现点击treeView中的某一节点,在listview中显示该节点下所有的子节点,该怎么做,需要定义事件吗,如果需要具体怎么做

[解决办法]
用一个递归,把你点击的节点的子结点写入到listview中不就可以了.
这还需要定义事件吗?你响应treeview的nodemouseclick事件或者是afterselect事件不就可以了.
下面是代码,不知道是不是你要的.

/// <summary>
/// 递归方法
/// </summary>
/// <param name="parent"></param>
private void ReadChildNodeList(TreeNode parent,ListView listView)
{
foreach(TreeNode node in parent.Nodes)
{
listView.Items.Add(node.Text);
ReadChildNodeList(node, listView);
}
}

/// <summary>
/// treeview的AfterSelect事件
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
this.listView1.Items.Clear();
ReadChildNodeList(e.Node, this.listView1);
}
[解决办法]

探讨
用一个递归,把你点击的节点的子结点写入到listview中不就可以了.
这还需要定义事件吗?你响应treeview的nodemouseclick事件或者是afterselect事件不就可以了.
下面是代码,不知道是不是你要的.

/// <summary>
/// 递归方法
/// </summary>
/// <param name="parent"> </param>
private void ReadChildNodeList(TreeNode parent,ListView listView)
{
foreach(TreeNode node in parent.Nodes)
{
listView.Items.Add…

[解决办法]
楼主结帖吧。1楼说的确实能实现的。。
[解决办法]
那就在就在treeView1_AfterSelect里先进行一下判定该节点是否需要节点就行了
在树节点展开时,建议给每个节点的tag或是name赋值,便于节点的判断
例如
private void treeView1_AfterSelect(object sender, TreeViewEventArgs e)
{
if(this.treeview1.nodes.tag=="ss") ////ss为判断条件
ReadChildNodeList(e.Node, this.listView1);
}

用name来判断也一样

读书人网 >C#

热点推荐