我的代码如下:
Set Nd = tvDep.Nodes.Add(, , "A0", "所有部门", "A0") '添加根节点
Nd.Expanded = True
Nd.Selected = True
Set rs = QueryExt("SELECT 部门ID,部门名称 FROM USy部门明细") '从数据库中获取部门名称
Do While Not rs.EOF
Key = rs.Fields("部门ID")
Text = rs.Fields("部门名称")
strtemp = rs.Fields("部门ID")
Set Nd = tvDep.Nodes.Add("A0", tvwChild, "B" & Key, Text, "A1") '添加部门
Nd.Expanded = True
Set rss = QueryExt("SELECT 人员ID,人员姓名 FROM USy人员明细 WHERE 所属部门='" & strtemp & "'")
If rss.RecordCount > 0 Then
rss.MoveFirst
Do While Not rss.EOF
Key = rss.Fields("人员ID")
Text = rss.Fields("人员姓名")
ftrtemp = rss.Fields("人员ID")
Set Nd = tvDep.Nodes.Add("B" & strtemp, tvwChild, "C" & Key, Text, "A1") '添加部门
Nd.Expanded = True
Set rrs = QueryExt("SELECT 权限ID,功能名称 " & _
"FROM USy功能明细 INNER JOIN USy权限明细 ON USy功能明细.功能ID = USy权限明细.功能ID " & _
"WHERE USy权限明细.人员ID='" & ftrtemp & "'and USy功能明细.根节点ID=0 ")
If rrs.RecordCount > 0 Then
rrs.MoveFirst
Do While Not rrs.EOF
Key = rrs.Fields("权限ID")
Text = rrs.Fields("功能名称")
Set Nd = tvDep.Nodes.Add("C" & ftrtemp, tvwChild, "D" & Key, Text, "A1") '添加部门
Nd.Expanded = True
rrs.MoveNext '下一记录
Loop
End If
rss.MoveNext '下一记录
Loop
End If
rs.MoveNext
Loop在运行中出现加载后所有节点全部打开,而我想的是打开B级节点,B级以下的C、D级节点收缩为“+”
不进行展开,请教应如何添加代码,谢谢!!!
Set Nd = tvDep.Nodes.Add(, , "A0", "所有部门", "A0") '添加根节点
Nd.Expanded = True
Nd.Selected = True
Set rs = QueryExt("SELECT 部门ID,部门名称 FROM USy部门明细") '从数据库中获取部门名称
Do While Not rs.EOF
Key = rs.Fields("部门ID")
Text = rs.Fields("部门名称")
strtemp = rs.Fields("部门ID")
Set Nd = tvDep.Nodes.Add("A0", tvwChild, "B" & Key, Text, "A1") '添加部门
Nd.Expanded = True
Set rss = QueryExt("SELECT 人员ID,人员姓名 FROM USy人员明细 WHERE 所属部门='" & strtemp & "'")
If rss.RecordCount > 0 Then
rss.MoveFirst
Do While Not rss.EOF
Key = rss.Fields("人员ID")
Text = rss.Fields("人员姓名")
ftrtemp = rss.Fields("人员ID")
Set Nd = tvDep.Nodes.Add("B" & strtemp, tvwChild, "C" & Key, Text, "A1") '添加部门
Nd.Expanded = True
Set rrs = QueryExt("SELECT 权限ID,功能名称 " & _
"FROM USy功能明细 INNER JOIN USy权限明细 ON USy功能明细.功能ID = USy权限明细.功能ID " & _
"WHERE USy权限明细.人员ID='" & ftrtemp & "'and USy功能明细.根节点ID=0 ")
If rrs.RecordCount > 0 Then
rrs.MoveFirst
Do While Not rrs.EOF
Key = rrs.Fields("权限ID")
Text = rrs.Fields("功能名称")
Set Nd = tvDep.Nodes.Add("C" & ftrtemp, tvwChild, "D" & Key, Text, "A1") '添加部门
Nd.Expanded = True
rrs.MoveNext '下一记录
Loop
End If
rss.MoveNext '下一记录
Loop
End If
rs.MoveNext
Loop在运行中出现加载后所有节点全部打开,而我想的是打开B级节点,B级以下的C、D级节点收缩为“+”
不进行展开,请教应如何添加代码,谢谢!!!
解决方案 »
- 模拟键盘输入的问题
- vb的源代码,哪部分是窗体,哪部分是模块?
- 求助,使用setup factory打包驱动程序?
- 请大虾帮忙!(关于mdi窗体传递参数问题)
- 请高手帮忙了,很急啊,谢谢谢谢了,在线等待
- 我安装的Visio 2002 中文版为什么没有Network Object Model(NOM)? 请帮帮忙,很急。
- 兄弟需要一份天津的工作。有在天津的朋友吗??如能帮此忙。小弟不盛感激!!!!
- VB报表的一个技术问题,急!!!希望高手帮忙解决一下,谢谢!
- VB做ActiveX的时候,怎样增加属性,事件和方法?最好给个例子。
- 请问:如何用vb实现access数据库表和xls格式文件的转化?或相关网址,谢谢!
- 我是新手,想问下如何SendMessage给另一个程序
- 如何控制桌面上开启的 EXCEL 档案
首先在 VB 中建立一个新工程,单击“工程/部件”,在控件列表中选中“
Microsoft Windows command controls6.0(sp4)”,按下“确定”按钮返回主界面,在左侧控件窗体中选中 Treeview 控件置于窗体上,再放置一个 Imagelist 控件、两个 Label 控件、两个Textbox 控件、六个 commandbutton 控件,其属性分别如下: Treeview 控件:名称 Treeview1; Imagelist 控件:名称 Imagelist1,并在该控件中放置三张个性图片(32×32),建立索引1、2、3;(方法:在Imagelist 控件上单击鼠标右键选择属性) Label 控件:名称分别为Lab(0)、Lab(1),Caption分别为“父节点:”、“子节点:”; Textbox 控件:名称分别为Txt(0)、Txt(1),text都为“”; commandbutton 控件:名称为系统默认,Caption分别为“添加”、“展开”、“收起”、“排序”、“删除”、“退出”; 将下列代码加入到代码框:Option Explicit Dim I As Integer
Dim J As Integer
Dim nodx As Node
Dim CunZai As Boolean '定义变量
Private Sub Command1_Click()
If Txt(0).Text <> "" And Txt(1).Text <> "" Then '不允许建立零字节的父节点和子节点
CunZai = False
J = TreeView1.Nodes.Count
For I = 1 To TreeView1.Nodes.Count '检查新输入的父节点名称是否存在
If TreeView1.SelectedItem.Children > 0 Then
If Txt(0).Text = TreeView1.Nodes(I).Text Then CunZai = True
End If
Next I
If CunZai = True Then '若存在, 则在父节点下建立子节点
Set nodx = TreeView1.Nodes.Add(Txt(0).Text, tvwChild, "child" & J,
Txt(1).Text, 3)
Else ,若不存在,则建立父节点和子节点
Set nodx = TreeView1.Nodes.Add(, , Txt(0).Text, Txt(0).Text, 1)
Set nodx = TreeView1.Nodes.Add(Txt(0).Text, tvwChild, "child" & J,_
Txt(1).Text, 3)
End If
TreeView1.Refresh
ElseIf Txt(0).Text = "" Then MsgBox "请输入父节点名称!", vbInformation, "警告!"
'系统提示
ElseIf Txt(1).Text = "" Then MsgBox "请输入子节点名称!", vbInformation, "警告!"
End If
End SubPrivate Sub Command2_Click()
For I = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(I).Expanded = True '展开所有节点
Next I
End SubPrivate Sub Command3_Click()
For I = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(I).Expanded = False '收起所有节点
Next I
End SubPrivate Sub Command4_Click()
TreeView1.Sorted = True '排列顺序
End SubPrivate Sub Command5_Click()
If TreeView1.SelectedItem.Index <> 1 Then
TreeView1.Nodes.Remove TreeView1.SelectedItem.Index '删除选定的节点
End If
End SubPrivate Sub Command6_Click()
End '退出程序
End SubPrivate Sub Form_Load()
TreeView1.LineStyle =TvwTreeLines '在兄弟节点和父节点之间显示线
TreeView1.ImageList = ImageList1 '链接图像列
TreeView1.Style = tvwTreelinesPlusMinusPictureText
'树状外观包含全部元素
Set nodx = TreeView1.Nodes.Add(, , "蒲子明", "蒲子明", 1)
'建立名称为"蒲子明"的父节点,选择索引为1的图像
Set nodx = TreeView1.Nodes.Add("蒲子明", tvwChild, "child01", "收件箱", 3)
'在"蒲子明"父节点下建立"收件箱"子节点,选择索引为3的图像
Set nodx = TreeView1.Nodes.Add("蒲子明", tvwChild, "child02", "发件箱", 3)
'在"蒲子明"父节点下建立"发件箱"子节点,选择索引为3的图像
CunZai = False
End SubPrivate Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node)
Node.ExpandedImage = 2 '节点被展开时,选择索引为2的图像
End SubPrivate Sub TreeView1_NodeClick(ByVal Node As MSComctlLib.Node)
If TreeView1.SelectedItem.Children = 0 Then '检查是否有子节点,0为无
For I = 1 To TreeView1.Nodes.Count
If TreeView1.Nodes(I).Selected Then
MsgBox "您选择的是:“" & TreeView1.Nodes(I).FullPath & "”子节点!"
'系统提示
End If
Next I
End If
End Sub