【问题标题】:Select all child nodes in treeView control using C#使用C#选择treeView控件中的所有子节点
【发布时间】:2014-05-08 09:04:58
【问题描述】:

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

所以我的问题是是否有另一种(可能更好)的方法来做到这一点?

建议赞赏:)

【问题讨论】:

    标签: c# telerik


    【解决方案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;
    

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2011-12-28
    • 1970-01-01
    • 2010-11-25
    • 1970-01-01
    • 1970-01-01
    • 2011-03-12
    • 2011-08-09
    • 1970-01-01
    相关资源
    最近更新 更多