vb.net TreeView 获得ID谢谢有源码

zq123zz 2010-12-22 10:47:06
有个textbox1 我想点TreeView1的子节把ID传给textbox1中,谢谢帮一下!


Imports System.Data.SqlClient
Imports System.Windows.Forms
Public Class Form2
Private ds As New DataSet()
Private Sub Form2_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim CN As New SqlConnection()
Try

'初始化连接字符串

CN.ConnectionString = "Data Source=(local);Initial Catalog=yy;" & _
"Integrated Security=false;User ID=sa;Password=admin"
CN.Open()
'添加命令,从数据库中得到数据
Dim sqlCmd As New SqlCommand()
sqlCmd.Connection = CN
sqlCmd.CommandText = "select * from tbtree"
sqlCmd.CommandType = CommandType.Text
Dim adp As SqlDataAdapter = New SqlDataAdapter(sqlCmd)
adp.Fill(ds)
Catch ex As Exception
MsgBox(ex.Message)
Finally
'关闭连接
CN.Close()
End Try
'调用递归函数,完成树形结构的生成
AddTree(0, Nothing)
End Sub
Private Sub AddTree(ByVal ParentID As Integer, ByVal pNode As TreeNode)
Dim Node As TreeNode
Dim dvTree As New DataView()
dvTree = New DataView(ds.Tables(0))
'过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "PARENTID = " + ParentID.ToString
Dim Row As DataRowView
For Each Row In dvTree
If pNode Is Nothing Then '判断是否根节点
'̀添加根节点
Node = TreeView1.Nodes.Add(Row("context").ToString())
'̀再次递归
AddTree(Int32.Parse(Row("ID").ToString()), Node)
Else
'添加当前节点的子节点
Node = pNode.Nodes.Add(Row("context").ToString())
'̀再次递归
AddTree(Int32.Parse(Row("ID").ToString()), Node)
End If
Node.EnsureVisible()
Next
End Sub
Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect

End Sub
End Class
...全文
124 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
zq123zz 2010-12-26
  • 打赏
  • 举报
回复
谢谢了搞定了
沐NeMo 2010-12-25
  • 打赏
  • 举报
回复
 '?再次递归--应该改为:
AddTree(Int32.Parse(Row("PARENTID").ToString()), Node)
Tosp2012 2010-12-23
  • 打赏
  • 举报
回复
Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
TextBox1.text = TreeView1.SelectedNode.Tag
End Sub
沐NeMo 2010-12-22
  • 打赏
  • 举报
回复
    Private Sub AddTree(ByVal ParentID As Integer, ByVal pNode As TreeNode)
Dim dvTree As New DataView()
dvTree = New DataView(ds.Tables(0))
'过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "PARENTID = " + ParentID.ToString
Dim Row As DataRowView
For Each Row In dvTree
Dim Node As New TreeNode
Node.Name = Row.Item("ID")
Node.Text = Row.Item("Context")
Node.Tag = Row.Item("PARENTID")
If pNode Is Nothing Then '判断是否根节点
'?添加根节点
Me.TreeView1.Nodes.Add(Node)
Else
'添加当前节点的子节点
pNode.Nodes.Add(Node)
End If
'?再次递归
AddTree(Int32.Parse(Row("ID").ToString()), Node)
Node.EnsureVisible()
Next
End Sub
it_gz_xi 2010-12-22
  • 打赏
  • 举报
回复
要改改吧
可以试试这样,具体要怎么实现你要考虑下:
node.text="TreeView1节点显示的内容"
node.Name="要显示的ID"
TreeView1.nodes.add(node)
这样你选择改节点
Private Sub TreeView1_AfterSelect(ByVal sender As System.Object, ByVal e As System.Windows.Forms.TreeViewEventArgs) Handles TreeView1.AfterSelect
e.node.name '就是你的ID
End Sub
zq123zz 2010-12-22
  • 打赏
  • 举报
回复
我该怎么做谢谢你
it_gz_xi 2010-12-22
  • 打赏
  • 举报
回复
你没把ID 保存起来,怎么取的了呢?

16,547

社区成员

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

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