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

发布于 2024-12-09 12:44:35 字数 795 浏览 1 评论 0原文

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

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应用程序中。

i have load a tree view. i want to Traverse treeview node and expand & select a node. Expand is working fine. but select a node is not working.

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

        }

Its in windows application.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(3

一场春暖 2024-12-16 12:44:36

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

I tested exactly your own code and worked fine, both find and selection the node!
without any particular property setting for my treeview!
by the way I am using .Net 3.5 and VS 2008

迟到的我 2024-12-16 12:44:35

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

设置此属性时,指定的节点将滚动到视图中
并且所有父节点都会展开,以便指定的节点是
可见。

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

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

node.TreeView.SelectedNode = node.NextNode;  

TreeView.HideSelection 属性 是另一个属性这可能对你有用。

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

Not quite sure what's your issue is. TreeView.SelectedNode Property is the correct property.

When you set this property, the specified node is scrolled into view
and any parent nodes are expanded so that the specified node is
visible.

When the parent node or any ancestor node of the selected node is
collapsed either programmatically or through user action, the
collapsed node becomes the selected node.

Make sure that the node.TreeView is the correct TreeView instance.

node.TreeView.SelectedNode = node.NextNode;  

TreeView.HideSelection Property is another property that might useful for you.

When this property is set to false, selected nodes in the TreeView
control remain highlighted in a different color than the current
selection color when the TreeView control loses focus. You can use
this property to keep items that are selected by the user visible when
the user clicks a different control on the form or moves to a
different window.

末が日狂欢 2024-12-16 12:44:35

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

I had a similar issue. My form's ctor is given the test of a node to select.Finding the correct node was not a problem, but the tree didn't show the node as selected, since the tree control didn't have focus. merely had to use Form.ActiveControl = myTreecontrol; before setting myTreecontrol.SelectedNode

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文