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

时间:2014-05-08 09:04:58

标签: c# telerik

如果选择了父节点,我尝试选择所有子节点。我使用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循环是不必要的,因为子节点上没有任何子节点。

所以我的问题是,是否有其他(可能更好)的方法呢?

建议赞赏:)

1 个答案:

答案 0 :(得分:1)

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

    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;