treeview的复选框和焦点同步的问题?
目的是想点击复选框时焦点也同步地跟着移动,我的代码如下:
Private Sub Form_Load()
Dim bb As Node
Set bb = TreeView1.Nodes.Add(, , "b1", "1")
Set bb = TreeView1.Nodes.Add(, , "b2", "2")
Set bb = TreeView1.Nodes.Add(, , "b3", "3")
bb.EnsureVisible
treeview1.checkbox=true
end sub
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
If TreeView1.Nodes.Item("b1").Checked = True Then
TreeView1.Nodes("b1").Selected = True
End If
If TreeView1.Nodes.Item("b2").Checked = True Then
TreeView1.Nodes("b2").Selected = True
End If
If TreeView1.Nodes.Item("b3").Checked = True Then
TreeView1.Nodes("b3").Selected = True
End If
end sub
结果是向下逐个点选就可以,向上就不行啦,这是为什么呢?
问题点数:30、回复次数:6Top
1 楼tommychim(阿布洛迪)回复于 2002-01-04 16:05:42 得分 5
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
If TreeView1.Nodes.Item("b1").Checked = True Then
TreeView1.Nodes("b1").Selected = True
End If
If TreeView1.Nodes.Item("b2").Checked = True Then
TreeView1.Nodes("b2").Selected = True
End If
If TreeView1.Nodes.Item("b3").Checked = True Then
TreeView1.Nodes("b3").Selected = True
End If
Node.Selected = True --这里加一行
End Sub
Top
2 楼tommychim(阿布洛迪)回复于 2002-01-04 16:07:06 得分 10
再给你点建议,代码好象太烦琐了
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
Node.Selected = True
Node.Checked = Not Node.Checked
End Sub
Top
3 楼lihanbing(lihanbing)回复于 2002-01-04 16:07:42 得分 5
Private Sub Form_Load()
Dim bb As Node
Set bb = TreeView1.Nodes.Add(, , "b1", "1")
Set bb = TreeView1.Nodes.Add(, , "b2", "2")
Set bb = TreeView1.Nodes.Add(, , "b3", "3")
bb.EnsureVisible
TreeView1.Checkboxes = True
End Sub
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
If Node.Checked = True Then
Node.Selected = True
End If
End Sub
Top
4 楼lihanbing(lihanbing)回复于 2002-01-04 16:20:33 得分 5
Private Sub Form_Load()
Dim bb As Node
Set bb = TreeView1.Nodes.Add(, , "b1", "1")
Set bb = TreeView1.Nodes.Add(, , "b2", "2")
Set bb = TreeView1.Nodes.Add(, , "b3", "3")
bb.EnsureVisible
TreeView1.Checkboxes = True
End Sub
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
If Node.Checked = True Then
Node.Selected = True
End If
End Sub
Top
5 楼lihanbing(lihanbing)回复于 2002-01-04 16:39:06 得分 5
Private Sub Form_Load()
Dim bb As Node
Set bb = TreeView1.Nodes.Add(, , "b1", "1")
Set bb = TreeView1.Nodes.Add(, , "b2", "2")
Set bb = TreeView1.Nodes.Add(, , "b3", "3")
bb.EnsureVisible
treeview1.checkbox=true
end sub
Private Sub TreeView1_NodeCheck(ByVal Node As MSComctlLib.Node)
If Node.Checked = True Then
Node.Selected = True
End If
end sub
Top
6 楼kyzh()回复于 2002-01-04 16:53:25 得分 0
谢谢各位了,用你们的方法已解决问题了Top




