Вопрос
Есть TreeView, в котором есть как "родители", так и "дети". Задача следующая, если в CheckBox'е у "родителя" поставить галочку, то соответственно и у ВСЕХ "детей" они должы проставиться Дело в том, что есть у Node свойство Child, т.е. можно сделать так: node.child.checkes=true, но "галка" появляется только у ОДНОГО "ребенка"
Ответ
Private Sub TV_NodeCheck(ByVal Node As MSComctlLib.Node)
Dim Nd As Node
Set Nd = Node
If Not Nd.Checked Then
While Nd.Key <> "R"
Nd.Checked = False
Set Nd = Nd.Parent
Wend
Nd.Checked = False
End If
Set Nd = Node
RecheckTree Nd
End Sub
Private Sub RecheckTree(Nod As Node)
If Nod.Children = 0 Then Exit Sub
Dim k As Integer
k = Nod.Child.Index
While k <> Nod.Child.LastSibling.Index
TV.Nodes(k).Checked = Nod.Checked
If TV.Nodes(k).Children <> 0 Then RecheckTree TV.Nodes(k)
k = TV.Nodes(k).Next.Index
Wend
TV.Nodes(k).Checked = Nod.Checked
RecheckTree TV.Nodes(k)
End Sub
Рязанов Андрей
Или так:
Private Sub TV_NodeCheck(ByVal Node As MSComctlLib.Node)
If Node.Children >= 1 Then
Set Nod = Node.Child
For I = 1 To Node.Children
Nod.Checked = Node.Checked
Set Nod = Nod.Next
Next
End If
End Sub
vdm2010
Copyright 2000-2004 Сообщество Чайников
Контактная информация