treeview的问题!!

hzc1 2007-04-12 11:02:04
如何知道节点下面还有没有子节点,我需要的是如果有子节点就用一种图标,没有了就用另一种图标。
再个如果生成树了,可不可以再更改有子节点的节点的图标啊?
...全文
330 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
hexinchun148 2007-04-19
  • 打赏
  • 举报
回复
帮你找了一些资料

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
End Sub
hzc1 2007-04-17
  • 打赏
  • 举报
回复
谢谢。
还有个问题就是有子节点的节点,当双击它后会出现编辑状态,要打开哪个选项才能让它不能编辑呢?也就是我不希望在里面对所有的节点文字进行编辑。
alexdong2002 2007-04-17
  • 打赏
  • 举报
回复
如何知道节点下面还有没有子节点,我需要的是如果有子节点就用一种图标,没有了就用另一种图标。
定义一个node对象,令其为该节点的child,然后判断是否该对象存在,如果存在则含有子节点,如果不存在则不存在字节点。
如判断tmpPNode的子节点是否存在:
dim tmpChildNode as node
set tmpChildNode =tmpPNode.child
if not tmpchildNode is nothing then
msgbox "含有子节点"
else
msgbox "不含有子节点"
end if

再个如果生成树了,可不可以再更改有子节点的节点的图标啊?
有一个expandImage属性
clear_zero 2007-04-12
  • 打赏
  • 举报
回复
你在生成树的时候不就知道是不是向当前结点下添加子结点了么,在sql的时候啊

可以更改图表

1,451

社区成员

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

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