繁体   English   中英

使用C#选择treeView控件中的所有子节点

[英]Select all child nodes in treeView control using C#

如果选择了父节点,则尝试选择所有子节点。 我正在使用Telerik WinControls的radTreeView。 我试图使用radTreeView_SelectedNodeChanged()并获得以下代码:

private void machinesTreeView_SelectedNodeChanged(object sender, RadTreeViewEventArgs e)
{
    for (int w = 0; w < machinesTreeView.SelectedNode.Nodes.Count; w++)
    {
        machinesTreeView.SelectedNode = machinesTreeView.SelectedNode.Nodes[w];
    }
}

我调试了它,因为它只是选择了第一个。 然后我看到只选择第一个是合乎逻辑的。 因为如果代码执行

machinesTreeView.SelectedNode = machinesTreeView.SelectedNode.Nodes[w];

它选择了一个新节点,因此再次触发SelectedNodeChanged事件,然后不需要for循环,因为在子节点上没有任何子节点。

所以我的问题是,是否还有另一种(也许更好)的方法?

赞赏的建议:)

似乎您的处理程序中有错误。 如果要选择所有子节点,请尝试以下操作:

    private void machinesTreeView_SelectedNodeChanged(object sender, RadTreeViewEventArgs e)
    {
        for (int w = 0; w < machinesTreeView.SelectedNode.Nodes.Count; w++)
        {
            machinesTreeView.SelectedNode.Nodes[w].Selected = true;
        }
    }

不要忘记启用多选功能:

machinesTreeView.MultiSelect = true;

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM