|
1、treeview说明 (父节点和item前都有checkbox供点击):
SAC -----> 父节点
01001 -------> item
01002 -------> item
2、listview就是一个普通的列表包含 两列
3、想实现的效果是:
(1)、点击 SAC 前的checkbox 01001和01002 的这两个文本自动勾选(这点我已经完成),然后添加到 listview中
(2)、取消 SAC 前的 checkbox,原本在listview中的01001和01002,自动在listview中消失
(3)、同样是 直接点击01001或01002,自动添加到listview中,取消01001和01002前的 checkbox,01001和01002在listview中消失
4、付 treeview到listview的代码,
(1) 将 treeview 点击的数据添加到 listview中,我已经做好
(2) 如果取消 点击 treeview 前的checkbox,原本在listview中的数据无法自动消失, 这点请高手帮忙,,,小弟跪求~~~~~~~
【代码附件】
Func _TreeViewToListBox($TreeView, $ListView)
$TreeView -----TreeView句柄
$ListView ----- ListView句柄
Local $TVItemString = ""
Local $LsIndex
Local $TVSubItemString = _GUICtrlTreeView_GetFirstItem($TreeView)
Local $TreeViewIndexs = _GUICtrlTreeView_GetCount($TreeView) ;获取TreeView中项目的数量
For $i = 0 To $TreeViewIndexs – 1 ;循环项目数量
If _GUICtrlTreeView_GetChecked($TreeView, $TVSubItemString) = True Then
$TVItemString = _GUICtrlTreeView_GetText($TreeView, $TVSubItemString)
If _GUICtrlListView_FindInText($ListView, $TVItemString) = -1 Then
_ GUICtrlListView _InsertItem($ListView, $TVItemString)
EndIf
Else
$TVItemString = _GUICtrlTreeView_GetText($TreeView, $TVSubItemString)
If _ GUICtrlListView _FindInText($ListView, $TVItemString) <> -1 Then
$deleteText = _ GUICtrlListView _FindInText($ListView, $TVItemString))
_ GUICtrlListView _DeleteItem($ListView, deleteText) 就是这个删除的,删除不了
EndIf
EndIf
$TVSubItemString = _GUICtrlTreeView_GetNext($TreeView, $TVSubItemString) ;吧TreeView句柄移至下一个
Next
EndFunc |
|