treeview简单问题!
在树形视图控件中,我用insertitem()添加了第一级第二级第三级菜单,其中只有一层第一级菜单,有四层第二级菜单,每一个第二级菜单下面又有五个子菜单,那么,我怎么能得到第二级的句柄?假设第一级菜单是“中国”,第二级菜单有三个并列的“北京、天津、上海”,第三级菜单“北京”下面有两个并列的“海淀区、丰台区”!使用什么函数可以得到“天津”的句柄是2? 问题点数:50、回复次数:8Top
1 楼blackcorbie(黑色乌鸦)回复于 2003-09-03 14:45:31 得分 0
如果我用getitem()函数得到“丰台区“,同时我又怎么能得到“丰台区”的上一级菜单“北京”呢?Top
2 楼incats(wanyong)回复于 2003-09-03 14:50:09 得分 6
finditem()
Top
3 楼workhand(我可憨了...)回复于 2003-09-03 14:59:54 得分 4
为什么不是根据数据窗口建树呢?dw里可以记录每一个结点的handle阿,或者为了实现你的目的建一个隐藏的dw记录一下,在dw里find,取handle,到树上selectitem()。Top
4 楼blackcorbie(黑色乌鸦)回复于 2003-09-03 15:05:11 得分 0
能不能详细点呢?给点具体的代码?帮我把“丰台区”的上级菜单“北京”取出来
我知道使用
treeviewitem l_tvi
long ll_tv
int li_tv
string ls_tv
ll_tv = tv_1.finditem(currenttreeitem!,0)
li_tv = tv_1.getitem(ll_tv,l_tvi)
ls_tv = l_tvi.label
这样可以获得ls_tv = "丰台区",我怎么能在获得丰台区的同时也能获得“北京”呢?
多谢;
Top
5 楼workhand(我可憨了...)回复于 2003-09-03 15:15:13 得分 10
根据label到树上finditem不行吧。你的情况是得到当前选中的结点的label,可你想得到他的上级结点的label。这种情况只在树上find我不知道,我也是知道一点皮毛。Top
6 楼workhand(我可憨了...)回复于 2003-09-03 15:54:56 得分 10
建一个数据窗口,字段如下:handle,grade,lable,生成树的时候往dw里插数(grade规则要清楚,几位长度)
生成数如下:
handle,grade,lable
1 001 北京
2 001001 海淀
3 001002 丰台
4 002 上海
5 003 天津
如题,知道当前选择的是丰台,想要他的上级,那么丰台的grade为001002,那他上级的grade肯定为left('001002,3) = 001 ,到dw里找grade = 001 的,得到行,取handle = 1 ,lable = 北京,这时可以到树上selectitem(1)。Top
7 楼ltsiphon(南鹊)回复于 2003-09-03 16:47:26 得分 20
试试这样...
找到丰台的句柄,定为il_handle1
long ll_oldparenthandle
ll_oldparenthandle = tv_x.FindItem(ParentTreeItem!, il_handle1)
Top
8 楼blackcorbie(黑色乌鸦)回复于 2003-09-03 17:18:54 得分 0
多谢workhand(这一刻我发现,我是醒着的...)认真的给解释,您的意见很好,只是我现在使用treeview控件,不过ltsiphon(南鹊) 的方法可以很轻松的解决我的问题,多谢二位!Top




