在Windows应用程序中以编程方式选择treeview中的节点

use*_*897 3 .net c# windows treeview winforms

我已加载树视图.我想遍历树视图节点并展开并选择一个节点.展开工作正常.但选择一个节点不起作用.

private void Traverse(TreeNodeCollection nodes, string findtext) 
        {
          foreach (TreeNode node in nodes) 
            {
                if (node.Text.ToString().Trim() == findtext)
                {
                    node.Expand();
                    node.TreeView.SelectedNode = node.NextNode;                    

                    //tvwStructureTree.SelectedNode = this.tvwStructureTree.Nodes[node.Index];
//Select a node in Treeview tvwStructureTree But not working
                    tvwStructureTree.SelectedNode = node; 
                    node.TreeView.Focus(); 
                }
                Traverse(node.Nodes, findtext); 
            } 

        }
Run Code Online (Sandbox Code Playgroud)

它在Windows应用程序中.

Cha*_*thJ 5

不太确定你的问题是什么.TreeView.SelectedNode属性是正确的属性.

设置此属性时,指定的节点将滚动到视图中,并展开任何父节点,以便可以看到指定的节点.

当以编程方式或通过用户操作折叠所选节点的父节点或任何祖先节点时,折叠节点将成为所选节点.

确保它node.TreeView是正确的TreeView实例.

node.TreeView.SelectedNode = node.NextNode;  
Run Code Online (Sandbox Code Playgroud)

TreeView.HideSelection属性是另一个可能对您有用的属性.

当此属性设置为false时,TreeView控件失去焦点时,TreeView控件中的选定节点将以与当前选择颜色不同的颜色突出显示.当用户单击窗体上的其他控件或移动到其他窗口时,您可以使用此属性来保持用户选择的项目可见.