!!!送分题:如何对Vb6的treeview控件进行编程。(一定给分) 对呀,MSDN有例子的呀。没什么难得,再说你的问题也太笼统了,让我从那里说起呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 自己研究MSDN吧!分数给我. TreeView主要用于表示具有层次的结构,通过节点所在的位置可一目了然的看到各节点数据间的依赖关系。如部门结构,会计科目结构,地理结构等。添加节点用Add方法,用法如下: tv.Add(ParentKey,Relation,Key,Text,Image)其中ParentKey为与本节点相关的节点的关键字,Relation为两个节点的关系,是些枚举值,可以查看帮助。Key为本节点的关键字,Text为本节点显示的文字串,Image为可选参数,只在tv连上了某个ImageList时才有用,它指示所用的在ImageList中的图形编号。一些例子: tv.Add ,,"Node1","总公司" tv.Add "Node1",tvwChild,"Node2","行政部"前面两个参数不填表示添加顶层节点。添加根结点:TreeView1.Nodes.Add , , "node1", "总公司"添加node1的子节点:TreeView1.Nodes.Add "node1", tvwChild, "node2", "行政部"点击处理treeview1的click事件即可,可以用下面的方法得到当前的选择项Private Sub TreeView1_Click() Dim nod As Node Set nod = TreeView1.SelectedItem MsgBox nod.TextEnd Sub 谢谢何金水你回答的问题也是我希望了解的,andydu快给分,你回答问题的方式特别适合象我这样的初学者,我也希望给你加分. 謝謝各位的關注,更謝謝何金水的回復,但我希望得到的答案是更深層一些的,所以希望哪位朋友最好能將msdn里的範例show在貼子上(因為我手頭沒有msdn),拜託了! 我一定會給分的!! 这个问题太easy!以前我的毕业设计的内容就是类似的!编写一个解码和一个编码的子程序!编码时充分利用sql语句中不用许出现的特殊字符作区别码!解码时通过判断特殊字符的位置,从而确定相关内容,达到解码识别的目的! 在创建 Node 对象时,在 Set 语句中(如下所示)使用 Node 类型的变量。Dim TempNode As NodeSet TempNode = tvwDB.Nodes.Add()虽然可以在添加 Node 对象时创建变量,更有效的方式是声明一个模块级的 Node 对象变量,并用它创建所有的 Node 对象。在上述声明部分再键入:Private mNode As NodeForm Load 事件:用 Nodes 集合的 Add 方法创建顶层的 Node 对象至此,Database 对象变量已经被初始化为 Biblio 数据库,现在可以创建树中的第一个节点,并将打开的数据库的名称赋予它。首先必须用 Node 集合的 Add 方法创建第一个 Node 对象。还要使用 Set 语句将其赋给 mNode 对象变量,如下所示:Set mNode = tvwDB.Nodes.Add() ' 创建第一个节点。mNode.Text = mDbBiblio.Name用 Do Until 语句为表中的每个出版商创建一个 Node 对象现在有两个打开的记录集,可以遍历每个记录集,创建 Node 对象,并为该对象的 Text 属性赋予合适的值。首先,必须遍历 Publishers 表,并为该表中的每个出版商创建一个 Node 对象。下列简化了的代码可以用一句话概括为,“逐个处理每个记录,直到记录集的末尾:创建 Node 变量,并将 Title 字段的值赋给其 Text 属性,移到下一记录并重复”:Do Until rsPublishers.EOF Set mNode = tvwDB.Nodes.Add(1, tvwChild) mNode.Text = rsPublishers!Name rsPublishers.MoveNextLoop注意,在上面的 Add 方法中用了两个参数。第一个参数(1)是我们希望添加入节点的 Node 的 Index 属性。也就是说,希望所有的出版商节点成为第一个(根)节点(在 Form 的 Load 事件中创建的)的子节点。第二个参数使用了常数 (tvwChild),该常数指定新的 Node 将成为编号为“1”的 Node 的子节点。对每个出版商,在 Titles 记录集中检查匹配的 PubID 字段;为每个匹配项添加一个子节点上面的代码将 Publishers 表的内容作为第一层填入 TreeView 中。然而,我们还希望能够进入更深一层,为每个出版商节点增加子节点。每个子节点代表该出版商印刷的一本书。为了做到这一点,如果有了对新创建的出版商节点 (mNode) 的引用,只要遍历 Titles 记录集,并检查每条记录的 PubID 字段即可。如果该字段与 Publishers 记录集中的 PubID 字段相匹配,则该书是由当前的出版商出版的。但是,在能够为 mNode 添加节点之前,还必须先将 mNode 的 Index 属性赋给一个变量 (intIndex),如下所示:intIndex = mNode.Index然后就可以在 Add 方法中使用该变量了,Add 方法需要用来加入子节点的 Node 对象的 Index 属性:Set mNode = tvwDB.Nodes.Add(intIndex, tvwChild)如下简化的代码可被表述为“直到 Recordset 的结尾:创建子 Node 对象,并将 Title 字段的值赋给它的 Text 属性;移动到下一记录并重复上述操作”:Do Until rsTitles.EOF If rsPublishers!PubID = rsTitles!PubID Then Set mNode = tvwDB.Nodes.Add(intIndex, tvwChild) mNode.Text = rsTitles!Title 'Text 属性。 End IfLoop完成代码上面的代码显示了用两个相关的表填成一个表的基本策略。全部代码如下:'必须设置对 DAO 3.5 的引用。'在声明部分,声明模块级的对象变量:Private mDbBiblio As Database Private mNode As NodePrivate Sub Form_Load() '在 Form_Load 事件中,设置对象变量, '并创建 TreeView 控件的第一个 Node 对象。 Set mDbBiblio = DBEngine.Workspaces(0). _ OpenDatabase("BIBLIO.MDB") tvwDB.Sorted = True Set mNode = tvwDB.Nodes.Add() mNode.Text = "Publishers" mNode.Tag = mDbBiblio.Name '设置 Tag 属性。 mNode.Image = "closed" '设置 Image '属性End Sub Private Sub cmdLoad_Click() '声明 DAO 对象变量, '并将记录集赋予它们。 Dim rsPublishers As Recordset Dim rsTitles As Recordset Set rsPublishers = mDbBiblio. _ OpenRecordset("Publishers", dbOpenDynaset) Set rsTitles = mDbBiblio. _ OpenRecordset("titles", dbOpenDynaset) '移到第一条记录。 rsPublishers.MoveFirst Dim intIndex As Integer '用于索引的变量。 '直到最后一条记录 (EOF):添加一个 Node 对象, '并用 Name 字段作为新 'Node 对象的文本。 Do Until rsPublishers.EOF Set mNode = tvwDB.Nodes.Add(1, tvwChild) mNode.Text = rsPublishers!Name mNode.Tag = "Publisher" 'Tag 标识该表。 '为 Key 赋予唯一的 ID mNode.Key = CInt(rsPublishers!PubID) & " ID" '将变量 intIndex 设置为新创建 Node 的 Index 属性。 '用该变量将子 Node 对象加入当前 Node。 intIndex = mNode.Index '对这条记录,在 Title 表中查找与 Titles 记录集 '中出现相同 PubID 的记录。如果找到这样的记录, '则在 TreeView 控件中加入 Node 对象,并将用所 '找到记录的 Title、 ISBN 和 Author 字段为新 'Node 对象的属性赋值。 Do Until rsTitles.EOF If rsPublishers!PubID = rsTitles!PubID Then Set mNode = tvwDB.Nodes. _ Add(intIndex, tvwChild) mNode.Text = rsTitles!Title '文本。 mNode.Key = rsTitles!ISBN '唯一的 ID。 mNode.Tag = "Authors" '表名。 mNode.Image = "leaf" '图象。 End If rsTitles.MoveNext 'Titles 中 的下一条记录。 Loop '将 rsTitles 重新设置为 Titles 的第一条记录。 rsTitles.MoveFirst '移动到下一条 Publisher 记录。 rsPublishers.MoveNext LoopEnd Sub VB 如何用sendkeys模拟“ctrl+alt+del”打开任务管理器? 关于vb水晶报表的问题?? 奇怪的字符串是什么? 文本框求教高手,谢谢!!! 急救!!各位高手怎么我找不到spread sheet控件来添加到工具栏里! 急啊,不安装VB的运行库如何执行VB程序? 高難度問題..如何才能連上對方局域網中的電腦?? vb 如何把控件拖到标题栏上! 用MSXML2.DOMDocument保存后,怎么都写到一行里了 CAD宏如何 提取三维多段线坐标 急急急!!!这个语句错了吗?大家都看看吧!!! 帮帮忙好吗?子报表中rdo数据源的引用?
添加节点用Add方法,用法如下:
tv.Add(ParentKey,Relation,Key,Text,Image)
其中ParentKey为与本节点相关的节点的关键字,Relation为两个节点的关系,是些枚举值,可以查看帮助。Key为本节点的关键字,Text为本节点显示的文字串,Image为可选参数,只在tv连上了某个ImageList时才有用,它指示所用的在ImageList中的图形编号。
一些例子:
tv.Add ,,"Node1","总公司"
tv.Add "Node1",tvwChild,"Node2","行政部"
前面两个参数不填表示添加顶层节点。
添加根结点:
TreeView1.Nodes.Add , , "node1", "总公司"
添加node1的子节点:
TreeView1.Nodes.Add "node1", tvwChild, "node2", "行政部"点击处理treeview1的click事件即可,可以用下面的方法得到当前的选择项
Private Sub TreeView1_Click()
Dim nod As Node
Set nod = TreeView1.SelectedItem
MsgBox nod.Text
End Sub
位朋友最好能將msdn里的範例show在貼子上(因為我手頭沒有msdn),拜託了! 我一定會
給分的!!
编写一个解码和一个编码的子程序!编码时充分利用sql语句中不用许出现的特殊字符作区别码!
解码时通过判断特殊字符的位置,从而确定相关内容,达到解码识别的目的!
Set TempNode = tvwDB.Nodes.Add()虽然可以在添加 Node 对象时创建变量,更有效的方式是声明一个模块级的 Node 对象变量,并用它创建所有的 Node 对象。在上述声明部分再键入:Private mNode As Node
Form Load 事件:用 Nodes 集合的 Add 方法创建顶层的 Node 对象
至此,Database 对象变量已经被初始化为 Biblio 数据库,现在可以创建树中的第一个节点,并将打开的数据库的名称赋予它。首先必须用 Node 集合的 Add 方法创建第一个 Node 对象。还要使用 Set 语句将其赋给 mNode 对象变量,如下所示:Set mNode = tvwDB.Nodes.Add() ' 创建第一个节点。
mNode.Text = mDbBiblio.Name
用 Do Until 语句为表中的每个出版商创建一个 Node 对象
现在有两个打开的记录集,可以遍历每个记录集,创建 Node 对象,并为该对象的 Text 属性赋予合适的值。首先,必须遍历 Publishers 表,并为该表中的每个出版商创建一个 Node 对象。下列简化了的代码可以用一句话概括为,“逐个处理每个记录,直到记录集的末尾:创建 Node 变量,并将 Title 字段的值赋给其 Text 属性,移到下一记录并重复”:Do Until rsPublishers.EOF
Set mNode = tvwDB.Nodes.Add(1, tvwChild)
mNode.Text = rsPublishers!Name
rsPublishers.MoveNext
Loop注意,在上面的 Add 方法中用了两个参数。第一个参数(1)是我们希望添加入节点的 Node 的 Index 属性。也就是说,希望所有的出版商节点成为第一个(根)节点(在 Form 的 Load 事件中创建的)的子节点。第二个参数使用了常数 (tvwChild),该常数指定新的 Node 将成为编号为“1”的 Node 的子节点。对每个出版商,在 Titles 记录集中检查匹配的 PubID 字段;为每个匹配项添加一个子节点
上面的代码将 Publishers 表的内容作为第一层填入 TreeView 中。然而,我们还希望能够进入更深一层,为每个出版商节点增加子节点。每个子节点代表该出版商印刷的一本书。为了做到这一点,如果有了对新创建的出版商节点 (mNode) 的引用,只要遍历 Titles 记录集,并检查每条记录的 PubID 字段即可。如果该字段与 Publishers 记录集中的 PubID 字段相匹配,则该书是由当前的出版商出版的。但是,在能够为 mNode 添加节点之前,还必须先将 mNode 的 Index 属性赋给一个变量 (intIndex),如下所示:intIndex = mNode.Index然后就可以在 Add 方法中使用该变量了,Add 方法需要用来加入子节点的 Node 对象的 Index 属性:Set mNode = tvwDB.Nodes.Add(intIndex, tvwChild)如下简化的代码可被表述为“直到 Recordset 的结尾:创建子 Node 对象,并将 Title 字段的值赋给它的 Text 属性;移动到下一记录并重复上述操作”:Do Until rsTitles.EOF
If rsPublishers!PubID = rsTitles!PubID Then
Set mNode = tvwDB.Nodes.Add(intIndex, tvwChild)
mNode.Text = rsTitles!Title 'Text 属性。
End If
Loop完成代码
上面的代码显示了用两个相关的表填成一个表的基本策略。全部代码如下:'必须设置对 DAO 3.5 的引用。
'在声明部分,声明模块级的对象变量:
Private mDbBiblio As Database
Private mNode As NodePrivate Sub Form_Load()
'在 Form_Load 事件中,设置对象变量,
'并创建 TreeView 控件的第一个 Node 对象。 Set mDbBiblio = DBEngine.Workspaces(0). _
OpenDatabase("BIBLIO.MDB") tvwDB.Sorted = True
Set mNode = tvwDB.Nodes.Add()
mNode.Text = "Publishers"
mNode.Tag = mDbBiblio.Name '设置 Tag 属性。
mNode.Image = "closed" '设置 Image
'属性
End Sub Private Sub cmdLoad_Click()
'声明 DAO 对象变量,
'并将记录集赋予它们。
Dim rsPublishers As Recordset
Dim rsTitles As Recordset
Set rsPublishers = mDbBiblio. _
OpenRecordset("Publishers", dbOpenDynaset)
Set rsTitles = mDbBiblio. _
OpenRecordset("titles", dbOpenDynaset) '移到第一条记录。
rsPublishers.MoveFirst Dim intIndex As Integer '用于索引的变量。 '直到最后一条记录 (EOF):添加一个 Node 对象,
'并用 Name 字段作为新
'Node 对象的文本。
Do Until rsPublishers.EOF
Set mNode = tvwDB.Nodes.Add(1, tvwChild)
mNode.Text = rsPublishers!Name
mNode.Tag = "Publisher" 'Tag 标识该表。
'为 Key 赋予唯一的 ID
mNode.Key = CInt(rsPublishers!PubID) & " ID"
'将变量 intIndex 设置为新创建 Node 的 Index 属性。
'用该变量将子 Node 对象加入当前 Node。
intIndex = mNode.Index
'对这条记录,在 Title 表中查找与 Titles 记录集
'中出现相同 PubID 的记录。如果找到这样的记录,
'则在 TreeView 控件中加入 Node 对象,并将用所
'找到记录的 Title、 ISBN 和 Author 字段为新
'Node 对象的属性赋值。
Do Until rsTitles.EOF
If rsPublishers!PubID = rsTitles!PubID Then
Set mNode = tvwDB.Nodes. _
Add(intIndex, tvwChild)
mNode.Text = rsTitles!Title '文本。
mNode.Key = rsTitles!ISBN '唯一的 ID。
mNode.Tag = "Authors" '表名。
mNode.Image = "leaf" '图象。
End If
rsTitles.MoveNext 'Titles 中 的下一条记录。
Loop
'将 rsTitles 重新设置为 Titles 的第一条记录。
rsTitles.MoveFirst
'移动到下一条 Publisher 记录。
rsPublishers.MoveNext
Loop
End Sub