如果选择了父节点,我尝试选择所有子节点。我使用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循环是不必要的,因为子节点上没有任何子节点。
所以我的问题是,是否有其他(可能更好)的方法呢?
建议赞赏:)
答案 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;