treeview的有关问题!
treeview的问题!!
如何知道节点下面还有没有子节点,我需要的是如果有子节点就用一种图标,没有了就用另一种图标。
再个如果生成树了,可不可以再更改有子节点的节点的图标啊?
------解决方案--------------------
如何知道节点下面还有没有子节点,我需要的是如果有子节点就用一种图标,没有了就用另一种图标。
定义一个node对象,令其为该节点的child,然后判断是否该对象存在,如果存在则含有子节点,如果不存在则不存在字节点。
如判断tmpPNode的子节点是否存在:
dim tmpChildNode as node
set tmpChildNode =tmpPNode.child
if not tmpchildNode is nothing then
msgbox "含有子节点 "
else
msgbox "不含有子节点 "
end if
再个如果生成树了,可不可以再更改有子节点的节点的图标啊?
有一个expandImage属性
------解决方案--------------------
帮你找了一些资料
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 Sub
Private Sub Command2_Click()
For I = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(I).Expanded = True '展开所有节点
Next I
End Sub
Private Sub Command3_Click()
For I = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(I).Expanded = False '收起所有节点
Next I
End Sub
Private Sub Command4_Click()
TreeView1.Sorted = True '排列顺序
End Sub
Private Sub Command5_Click()
If TreeView1.SelectedItem.Index <> 1 Then
TreeView1.Nodes.Remove TreeView1.SelectedItem.Index '删除选定的节点
End If
End Sub
Private Sub Command6_Click()
End '退出程序
End Sub
Private 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 Sub
Private Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node)
Node.ExpandedImage = 2 '节点被展开时,选择索引为2的图像
End Sub
Private 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
如何知道节点下面还有没有子节点,我需要的是如果有子节点就用一种图标,没有了就用另一种图标。
再个如果生成树了,可不可以再更改有子节点的节点的图标啊?
------解决方案--------------------
如何知道节点下面还有没有子节点,我需要的是如果有子节点就用一种图标,没有了就用另一种图标。
定义一个node对象,令其为该节点的child,然后判断是否该对象存在,如果存在则含有子节点,如果不存在则不存在字节点。
如判断tmpPNode的子节点是否存在:
dim tmpChildNode as node
set tmpChildNode =tmpPNode.child
if not tmpchildNode is nothing then
msgbox "含有子节点 "
else
msgbox "不含有子节点 "
end if
再个如果生成树了,可不可以再更改有子节点的节点的图标啊?
有一个expandImage属性
------解决方案--------------------
帮你找了一些资料
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 Sub
Private Sub Command2_Click()
For I = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(I).Expanded = True '展开所有节点
Next I
End Sub
Private Sub Command3_Click()
For I = 1 To TreeView1.Nodes.Count
TreeView1.Nodes(I).Expanded = False '收起所有节点
Next I
End Sub
Private Sub Command4_Click()
TreeView1.Sorted = True '排列顺序
End Sub
Private Sub Command5_Click()
If TreeView1.SelectedItem.Index <> 1 Then
TreeView1.Nodes.Remove TreeView1.SelectedItem.Index '删除选定的节点
End If
End Sub
Private Sub Command6_Click()
End '退出程序
End Sub
Private 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 Sub
Private Sub TreeView1_Expand(ByVal Node As MSComctlLib.Node)
Node.ExpandedImage = 2 '节点被展开时,选择索引为2的图像
End Sub
Private 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