如何用代码来选定TreeView中指定的节点。。

zjls 2007-02-22 04:59:48
如提。
...全文
658 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
cgtsea 2007-04-06
  • 打赏
  • 举报
回复
这个问题我已经耗了五天了,终于解决了,供大家参考,来之不易啊:

Sub traverse(ByVal a As TreeNodeCollection)
Dim myNode As TreeNode
For Each myNode In a

'MsgBox(nd.Text)
' MsgBox(nd.p)
'nd.Nodes.g()
'TextBox4.Text 是要找的项
If myNode.Text = Trim(TextBox4.Text) Then
TreeView1.SelectedNode = myNode
myNode.Nodes.Add("加了")
myNode.Expand()
Exit For
End If
traverse(myNode.Nodes)
Next
yy_yu_ye 2007-04-06
  • 打赏
  • 举报
回复
Find方法的第二个参数是一个布尔型参数,若为“True”,则搜索Treeview中包含子节点的所有节点。若为“False”则只搜索本层Nodes。几楼上的朋友用递归算法也能实现,不过不如find方法来得直观和方便。
yy_yu_ye 2007-04-06
  • 打赏
  • 举报
回复
以上在FillNodes中忘记了End With语句。
yy_yu_ye 2007-04-06
  • 打赏
  • 举报
回复
用treeview.nodes.find方法。该find方法根据node的name属性来查找。所以需要在向TreeView添加TreeNode的时候,设置好每一个Node的Name属性。请参考以下代码:

'添加Node到TreeView中。
Public Sub FillNodes()
Dim nodNew as TreeNode
With TreeView1
nodNew = New TreeNode("root node")
nodNew.Name = "root"
.Nodes.Add nodNew

nodNew = New TreeNode("Child node")
nodNew.Name = "Child"
.Nodes(0).Nodes.Add nodNew

End Sub

'按下Btn按钮,执行设定操作。
Public Sub Btn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Btn.Click
SetNode("Child")
End Sub

'根据node.name(strNodeName)找到特定node,并选中它。
Public Sub SetNode(ByVal strNodeName As String)
Dim arrNodes As TreeNode() = TreeView1.Nodes.Find(strNodeName, True)
If arrNodes.Length <> 0 Then TreeView1.SelectedNode = arrNodes(0)
End Sub
cgtsea 2007-04-05
  • 打赏
  • 举报
回复
我也是这个问题,帮顶,或者动态加载是怎么搞的,真是期昐好心人!期盼韩睿出现
rola 2007-02-22
  • 打赏
  • 举报
回复
node.Selected=true

16,554

社区成员

发帖
与我相关
我的任务
社区描述
VB技术相关讨论,主要为经典vb,即VB6.0
社区管理员
  • VB.NET
  • 水哥阿乐
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧