您的位置:程序门 -> vb -> 控件



新手提问:关于treeview的问题


[收藏此页] [打印本页]选择字色:背景色:字体:[][][]


新手提问:关于treeview的问题
发表于:2007-06-04 22:08:25 楼主
下边是我的程序中一段创建treeview的代码:

private   sub   loadnewcomptree()

        dim   i   as   integer
        dim   rcomp   as   node   'root   component
        dim   scomp   as   node   'first   level   component
        dim   sscomp   as   node   'second   level   component
        dim   ssscomp   as   node   'third   level   component
       
        '   create   component   tree.
        with   trvnewcomp.nodes
        set   rcomp   =   .add(,   ,   "r   component ",   "component ")
                set   scomp   =   .add(rcomp,   tvwchild,   "s   integrated   circuit ",   "integrated   circuit ")
                scomp.ensurevisible
                set   scomp   =   .add(rcomp,   tvwchild,   "s   active ",   "active ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   transistor ",   "transistor ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   diode ",   "diode ")
                set   scomp   =   .add(rcomp,   tvwchild,   "s   passive ",   "passive ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   capacitor ",   "capacitor ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   coil ",   "coil ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   filter ",   "filter ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   inductor ",   "inductor ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   integrated   passive   component ",   "integrated   passive   component ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   resistor ",   "resistor ")
                set   scomp   =   .add(rcomp,   tvwchild,   "s   optical   active ",   "optical   active ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   light   emitting   diode ",   "light   emitting   diode ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   laser   diode ",   "laser   diode ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   photo   transistor ",   "photo   transistor ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   photo   diode ",   "photo   diode ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   integrated   optical   device ",   "integrated   optical   device ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   imaging   sensor ",   "imaging   sensor ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   photo   coupler/isolator/interrupter ",   "photo   coupler/isolator/interrupter ")
                set   scomp   =   .add(rcomp,   tvwchild,   "s   optical   passive ",   "optical   passive ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   optical   fiber ",   "optical   fiber ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   optical   connectors ",   "optical   connectors ")
                set   scomp   =   .add(rcomp,   tvwchild,   "s   electromechanical ",   "electromechanical ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   switch ",   "switch ")
                                set   ssscomp   =   .add(sscomp,   tvwchild,   "sss   tactile,   contact   dome ",   "tactile,   contact   dome ")
                                set   ssscomp   =   .add(sscomp,   tvwchild,   "sss   push   button ",   "push   button ")
                                set   ssscomp   =   .add(sscomp,   tvwchild,   "sss   snap   action,   contact   beam ",   "snap   action,   contact   beam ")
                                set   ssscomp   =   .add(sscomp,   tvwchild,   "sss   membrane,   array ",   "membrane,   array ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   connector ",   "connector ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   relay ",   "relay ")
                set   scomp   =   .add(rcomp,   tvwchild,   "s   mems ",   "mems ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   inertial   mems ",   "inertial   mems ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   microactuator ",   "microactuator ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   fluidic   mems ",   "fluidic   mems ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   optical   mems ",   "optical   mems ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   rf   mems ",   "rf   mems ")
                set   scomp   =   .add(rcomp,   tvwchild,   "s   pcb ",   "pcb ")
                        set   sscomp   =   .add(scomp,   tvwchild,   "ss   plated   through   hole ",   "plated   through   hole ")
                set   scomp   =   .add(rcomp,   tvwchild,   "s   other ",   "other ")
        end   with
       
        '没有窗体可以链接的nodes在treeview中显示为灰色
        with   trvnewcomp
                for   i   =   2   to   40
                        .nodes(i).forecolor   =   gy
                next
                '有窗体可以链接的nodes在treeview中显示为黑色
                .nodes(13).forecolor   =   bk     'led
                .nodes(14).forecolor   =   bk     'led
                .nodes(24).forecolor   =   bk   'tactile   switch
                .nodes(25).forecolor   =   bk   'tactile   switch
                .nodes(26).forecolor   =   bk   'tactile   switch
                .nodes(30).forecolor   =   bk   'connector
                .nodes(38).forecolor   =   bk     'pth
                .nodes(39).forecolor   =   bk     'pth
        'this   property   to   indicate   which   has   a   form   to   link
                .nodes(14).tag   =   1     'led
                .nodes(26).tag   =   1     'switch
                .nodes(30).tag   =   1     'connector
                .nodes(39).tag   =   1     'pth
        end   with
               
end   sub

现在程序里只写进去了四个nodes(14,26,30,39)链接的窗体,并且在上边的代码中也是把这四个有窗体可以链接的nodes显示为黑色,其他没有窗体可以链接的nodes显示为灰色。
因为以后还要陆续加进去一些和nodes对应的窗体,所以我想实现的功能是程序运行之后,先自动搜索一下,看哪些nodes有对应的窗体可以链接,然后把有窗体可以链接的显示为黑色,其他的显示为灰色,请问各位大大有什么办法没啊,小弟是百思不得其解啊!
发表于:2007-06-05 09:03:101楼 得分:0
友情帮顶
发表于:2007-06-05 09:31:422楼 得分:0
你得把“哪些nodes有对应的窗体可以链接”写到数据库或文件里
或者你程序里有相应规则
否则没法自动
发表于:2007-06-05 11:06:583楼 得分:0
同意yangao,隻有在數據庫中做標記
然後根據標記決定nodes的顏色
发表于:2007-06-05 11:15:454楼 得分:0
同意yangao,gxqianqin在數據庫中或ini文件中或   registry   中或程序里有相应规则做標記
然後根據標記決定nodes的顏色
发表于:2007-06-05 13:36:465楼 得分:0
大家说得都比较笼统,能给出一个具体的方案来么,最好是简单易行的,就比如说标记是要在哪里做,如何做,做成什么形式
发表于:2007-06-05 14:07:266楼 得分:0
思路给你了,实例我有,但在一个很大的project中,很难拿出这丁点儿部分。good   luck!一切靠自己,自己做   is   far   better   than   'copy   and   paste '.
发表于:2007-06-05 15:25:007楼 得分:0
to   vbadvisor(sunlight):起初我的想法也是在程序里被链接的窗体上做一些标记,可是怎么做,在哪里做一直没想明白,想听听你的方法,可以么?
发表于:2007-06-05 18:25:318楼 得分:0
.tag一直是我做标记的地方,根据tag不同显示不同颜色


快速检索

最新资讯
热门点击