【问题标题】:select a node in treeview programmatically in windows application在 Windows 应用程序中以编程方式在树视图中选择一个节点
【发布时间】:2011-10-12 07:08:46
【问题描述】:

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

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); 
            } 

        }

它在 Windows 应用程序中。

【问题讨论】:

  • 你要选择什么节点?我想不是 node.NextNode 。什么是 tvwStructureTree?试试 node.TreeView.SelectedNode = node.Nodes[0];

标签: c# .net windows winforms treeview


【解决方案1】:

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

设置此属性时,指定节点滚动到视图中 并且任何父节点都被展开,使得指定的节点是 可见。

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

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

node.TreeView.SelectedNode = node.NextNode;  

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

当此属性设置为 false 时,TreeView 中的选定节点 控件仍然以不同于当前的颜色突出显示 TreeView 控件失去焦点时的选择颜色。您可以使用 此属性使用户选择的项目在何时可见 用户单击表单上的不同控件或移动到 不同的窗口。

【讨论】:

    【解决方案2】:

    我遇到了类似的问题。我的表单的 ctor 接受了要选择的节点的测试。找到正确的节点不是问题,但是树没有将节点显示为选中,因为树控件没有焦点。只需在设置myTreecontrol.SelectedNode之前使用Form.ActiveControl = myTreecontrol;

    【讨论】:

      【解决方案3】:

      我完全测试了您自己的代码并且工作正常,找到并选择了节点! 我的树视图没有任何特定的属性设置! 顺便说一句,我使用的是 .Net 3.5 和 VS 2008

      【讨论】:

        猜你喜欢
        • 2011-06-10
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多