如何使在点击Treeview中的节点时,对应节点的名称显示在datagrid 和 listview 列表中

zhfliu 2004-03-24 03:36:46
高手请指导!
...全文
111 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
kqh0319 2004-03-31
  • 打赏
  • 举报
回复
学习
daisy8675 2004-03-25
  • 打赏
  • 举报
回复
'點擊的時候查所有節點內容 :strKey = Right$(Node.Key, (Len(Node.Key) - 1))
If Node.Image = 1 And Node.Text <> "所有分類" Then '查找其分類節點的子節點
With Me.lvwSerchMan
.ColumnHeaders.Add , , "姓名", 1000
.ColumnHeaders.Add , , "公司", 1500
.ColumnHeaders.Add , , "職稱", 800
.ColumnHeaders.Add , , "電話號碼", 2000
.ColumnHeaders.Add , , "備注", 2000
End With

strKey = Right$(Node.Key, (Len(Node.Key) - 1))

If rs3.State = 1 Then rs3.Close
rs3.Open "select * from Phonebook where username='" & strUsername & "' and classno=" & strKey & "and (ItemNo='1' or isnull(ItemNo) or len(itemno)<1)", conn1, 3, 3

''''''''''''''''
下面寫入listview 不用貼了吧...
daisy8675 2004-03-25
  • 打赏
  • 举报
回复
List1.AddItem node.Text就可以沒有那麼復雜的

谢谢各位!
还有一个问题,如何把treeview中的所有叶子节点的数据库中存放的信息全部的显示在上述的两个控件中,拜托!

//////////////////////////////
在數據建立的時候給node.key作上key的標記,然後選中。

給你個示范,比如 下面吧id當成了key,存在node.key中間

Public Sub Cpeopletre() '填充treeview

frmCPeople.treSerchMan.Nodes.Clear

Set NodeList = frmCPeople.treSerchMan.Nodes.Add(, , "所有分類", "所有分類", 1)
frmCPeople.treSerchMan.Nodes(1).Expanded = True

Set NodeList = frmCPeople.treSerchMan.Nodes.Add(, , "查詢結果", "查詢結果", 2)
frmCPeople.treSerchMan.Nodes(2).ForeColor = vbBlue

If rs1.State = 1 Then rs1.Close
rs1.Open "select L_Class,Id from L_Class where L_Username= 'System'or L_Username='" & strUsername & "' order by id", conn1, adOpenKeyset, adLockPessimistic

If rs3.State = 1 Then rs3.Close
rs3.Open "select * from Phonebook where (ItemNo='1' or isnull(ItemNo) or len(itemno)<1)and username='" & strUsername & "'", conn1, 3, 3

rs1.MoveFirst
rs3.MoveFirst

Do While Not rs1.EOF
If rs1("L_Class") <> "" Then
frmCPeople.treSerchMan.Nodes.Add "所有分類", tvwChild, "z" & rs1(1), rs1(0), 1

End If
'第二層
Do While Not rs3.EOF
If rs1("ID") = rs3("ClassNo") Then
If rs3("Name") <> "" Then

frmCPeople.treSerchMan.Nodes.Add "z" & rs1(1), tvwChild, "d" & rs3("ID"), rs3("Name"), 5
Else

frmCPeople.treSerchMan.Nodes.Add "z" & rs1(1), tvwChild, "d" & rs3("ID"), rs3("Company"), 4


End If
End If
rs3.MoveNext
Loop
If rs3.RecordCount <> 0 Then
rs3.MoveFirst
End If
rs1.MoveNext
Loop

Set rs1 = Nothing
Set rs3 = Nothing
End Sub

lxcc 2004-03-25
  • 打赏
  • 举报
回复
treeview的叶子节点存放数据记录的关键字,然后,单击选择节点,得到关键字,然后重新查询,然后填充到listview或者datagrid
zhfliu 2004-03-25
  • 打赏
  • 举报
回复
谢谢各位!
还有一个问题,如何把treeview中的所有叶子节点的数据库中存放的信息全部的显示在上述的两个控件中,拜托!
lxcc 2004-03-24
  • 打赏
  • 举报
回复
Private Sub Form_Load()
Dim nodex As Node
With TreeView1
.Indentation = 5
Set nodex = .Nodes.Add(, , "R", "家谱")
nodex.EnsureVisible
Set nodex = .Nodes.Add("R", tvwChild, "F1", "父亲")
nodex.EnsureVisible
Set nodex = .Nodes.Add("R", tvwChild, "F2", "伯父")
nodex.EnsureVisible

Set nodex = .Nodes.Add("R", tvwChild, "F3", "叔叔")
nodex.EnsureVisible

Set nodex = .Nodes.Add("F1", tvwChild, "S1", "我")
nodex.EnsureVisible

Set nodex = .Nodes.Add("F1", tvwChild, "S2", "哥哥")
nodex.EnsureVisible

Set nodex = .Nodes.Add("F1", tvwChild, "S3", "姐姐")
nodex.EnsureVisible

Set nodex = .Nodes.Add("F2", tvwChild, "S4", "堂姐")
nodex.EnsureVisible

Set nodex = .Nodes.Add("F3", tvwChild, "S5", "堂弟")
nodex.EnsureVisible
End With


Dim i As Integer
With ListView1
.Checkboxes = True
.FullRowSelect = True
.GridLines = True
.MultiSelect = True
.View = lvwReport
.ColumnHeaders.Add , , "One"
.ColumnHeaders.Add , , "Two"
.ColumnHeaders.Add , , "Three"
End With
With DataGrid1
.AllowAddNew = True
End With

End Sub


Private Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
With ListView1
.ListItems.Clear
.ListItems.Add , , Node.Text
End With

'DataGrid在于获得关键字然后再与数据库帮定
End Sub
sparkcn 2004-03-24
  • 打赏
  • 举报
回复
楼上的是主要的东西
其实很简单

主要用到treeview1.selecteditem 得到当前点中的

然后加在datagrid 和 listview 列表中
julysixth 2004-03-24
  • 打赏
  • 举报
回复
Private Sub TreeView1_Click() '单击父结点和子结点都可以.
ListView1.ListItems.Add , , TreeView1.SelectedItem
End Sub

1,451

社区成员

发帖
与我相关
我的任务
社区描述
VB 控件
社区管理员
  • 控件
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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