我遇到了如何从TreeviewItem中的复选框获取值的问题。在下面的链接中,Terry has mentioned使用此方法,
(一种方法是在树视图上使用CheckBoxes属性,然后检查treeviewitem的StatePicture(Unchecked = 1,Checked = 2))
但我仍然不知道如何使用它。我不知道我需要向StatePicture声明值(1,2),否则当我选中/取消选中时,该值将自动设置。
答案 0 :(得分:0)
从结构中输入os_point
长l_x
长l_y
结束类型
从结构中输入os_tvhittestinfo
os_point str_pt
长l_flags
长l_hitem
结束类型
//实例变量
市民:
常数uint TVM_HITTEST = 4369
常数utt TVHT_ONITEMSTATEICON = 64
:
布尔值ib_stateclick = FALSE
布尔值ib_stateclickin = FALSE
长il_handle
//本地外部功能
FUNCTION long HitMsg(long hWindow,uint uMsg,long wParam,REF OS_TVHITTESTINFO lParam)LIBRARY“user32.dll”ALIAS FOR SendMessageA
// Treeview mousemove事件
OS_TVHITTESTINFO lstr_tvhittest
il_handle =句柄(THIS)
//获取有关是否已单击状态图标的信息
lstr_tvhittest.str_pt.l_x = UnitsToPixels(xpos,XUnitsToPixels!)
lstr_tvhittest.str_pt.l_y = UnitsToPixels(ypos,YUnitsToPixels!)
//发送消息以检索鼠标指向的项目的句柄
HitMsg(il_handle,TVM_HITTEST,0,lstr_tvhittest)
//如果我们处于状态复选框,请设置标志
IF lstr_tvhittest.l_hItem<> 0那么
ib_stateclick =(lstr_tvhittest.l_flags = TVHT_ONITEMSTATEICON)
END IF
// Treeview点击事件
TreeviewItem l_tviold
this.GetItem(handle,l_tviold)
如果ib_stateclick那么
如果l_tviold.StatePictureIndex = 1那么
//复选框已检查
消息框('','复选框检查'+字符串(句柄))
否则
//复选框未检查
消息框('','复选框未检查'+字符串(句柄))
结束如果
END IF
完成。从https://groups.google.com/forum/#!topic/sybase.public.powerbuilder.general/YOKf5OwjKI0
收集的信息问候
拉吉