PowerBuilder的TreeView控件clicked事件代码,经过多位修改完善,近乎完美,没有显摆的意思,自己留存,各位老师留情。
long parent_handle,brother_handle
long i
TreeViewItem tvi_parent,tvi_cur,tvi_brother
IF not ib_stateclick then Return //如果不是在状态上点击,就返回
IF handle < 2 then Return //如果点击的是不能选择的item
//获得当前item
this.GetItem(handle,tvi_cur)
IF ( tvi_cur.StatePictureIndex = 2 ) then //当前item 的StatePictureIndex = 2表示被选中,1未选中
parent_handle = this.FindItem(ParentTreeItem!,handle) //得到父项的句柄
this.GetItem(parent_handle, tvi_parent)
IF tvi_parent.level > 1 and tvi_parent.StatePictureIndex <> 2 THEN //实现第一次选择子项时自动选中它的父项
tvi_parent.StatePictureIndex = 2
this.setRedraw(False)
this.SetItem(parent_handle, tvi_parent)
this.setRedraw(True)
END IF
IF KeyDown(KeyControl!) THEN
//如果按Ctrl键 + clicked 选择所有子项
parent_handle = this.FindItem(ChildTreeItem!,handle)
IF parent_handle <> -1 THEN
this