前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

PB TreeView 查找节点 - ☆灰色轨迹☆ - 博客频道 - CSDN.NET ☆灰色轨迹☆ 程序员都是好男人,因为他们一整天都在扪心自问:我到底错在哪了,让我知道,我一定改... 目录视图 摘要视图 订阅 新年新气象------CSDN2014新版导航就要跟大家见面了 2014年1月微软MVP当选名单揭晓! “我的2013”年度征文获奖名单已公布 专访宋海涛:我们在做一款比Google Glass更酷的设备 PB TreeView 查找节点 分类: pb实例 2011-03-11 11:19 982人阅读 评论(0) 收藏 举报 PowerBuilder PowerBuilder提供的TreeView控件可以使我们以树形方式分层组织和显示数据,使程序的表现更为灵活,用户的操作更加方便。通常情况下,在TreeView控件中通过展开和折叠各分枝,可以方便地对所需信息进行查找和定位,但是如果该控件中的内容层次较多,用户对其内容又不非常了解时,要让用户逐一展开各分枝进行定位就会使效率降低,这种情况下就需要提供一种自动查询方式,让用户输入要找的信息,由程序来完成在TreeView控件中的查找和定位。 PowerBuilder的TreeView控件没有直接提供完成这一功能的函数或方法,也就是说不能直接在TreeView控件的各节点中查找所需的数据。该控件具有一个FindItem()函数,可用于查找节点项,但该函数不能直接对我们所要找的数据进行查找,例如字符文本或数值数据,它只能基于TreeView控件的某一节点项的句柄进行查找。不过我们可以利用该函数来获得节点项的句柄,再通过该句柄进一步获得节点项的详细信息。FindItem() 函数的语法如下: treeviewname.FindItem ( navigationcode, itemhandle ) 其中,treeviewname是我们要在其中进行查找的TreeView控件的名称; navigationcode参数是一个TreeNavigation枚举数据类型,用来表明itemhandle参数与要找的节点项之间的关系,有效的取值如下: RootTreeItem! 查找第一层的第一项; NextTreeItem! 在同一级中查找itemhandle后的下一项; PreviousTreeItem! 在同一级中查找itemhandle前面的一项; ParentTreeItem! 查找itemhandle的父节点; ChildTreeItem! 查找itemhandle的第一个子节点; FirstVisibleTreeItem! 查找在TreeView控件中可视的第一项而不论层次; NextVisibleTreeItem! 查找itemhandle后已展开的第一项,不分层次; PreviousVisibleTreeItem! 查找itemhandle前已展开的第一项,不分层次; CurrentTreeItem! 获得当前所选项; DropHighlightTreeItem! 查找DropHighlighted属性最近被设置过的项。 Itemhandle参数表示节点项的句柄。 该函数返回一个长整形值,若执行成功返回找到的节点的句柄,若失败则返回 -1。除了ChildTreeItem!,FindItem不查找未展开的项。利用FindItem只能获得节点项的句柄,要得到某一节点的详细信息,还需要利用TreeView控件的GetItem()函数。该函数可通过节点项句柄得到节点项的状态信息,如label、picture index、childen等,只有比较这些状态信息如label的值,我们才能确定是否已经找到所需的节点项。该函数如下所示: treeviewname.GetItem ( itemhandle, item) 其中,treeviewname是TreeView控件的名称;itemhandle 是要获取信息的节点项的句柄;item参数是一个TreeViewItem系统对象变量,用于存放节点项的信息。 setpointer(hourglass!) long ll_handle long ll_handletree[] long ll_level int li_find treeviewitem ltvi_1 li_find = 0 tv_treeview.setredraw(false) ll_handle = tv_treeview.finditem(RootTreeItem! ,0) //tv_treeview.expandall(ll_handle) tv_treeview.expandItem(ll_handle) do while ll_handle >0 tv_treeview.getitem(ll_handle,ltvi_1) if ltvi_1.label = sle_content.text then //指定文本框内容 li_find = 1 exit end if ll_handle = tv_treeview.finditem(NextVisibleTreeItem! ,ll_handle) // tv_treeview.expandall(ll_handle) tv_treeview.expandItem(ll_handle) loop ll_level=1 if ll_handle > 0 then ll_handletree[ll_level]=ll_handle ll_handle=tv_treeview.finditem(ParentTreeItem! ,ll_handle) do while ll_handle > 0 ll_level ++ ll_handletree[ll_level]=ll_handle ll_handle=tv_treeview.finditem(ParentTreeItem! ,ll_handle) loop end if ll_handle = tv_treeview.finditem(RootTreeItem! ,0) do while ll_handle > 0 tv_treeview.CollapseItem(ll_handle) ll_handle = tv_treeview.finditem(NextTreeItem! ,ll_handle) loop do while ll_level > 0 and li_find = 1 tv_treeview.expanditem(ll_handletree[ll_level]) if ll_level = 1 then tv_treeview.selectitem(ll_handletree[ll_level]) tv_treeview.setfocus() exit else ll_level -- end if loop tv_treeview.setredraw(true) 更多 上一篇:PB ImportFile导入数据 下一篇:在windows 7上安装 Orcale10g 查看评论 * 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场 核心技术类目 全部主题 Java VPN Android iOS ERP IE10 Eclipse CRM JavaScript Ubuntu NFC WAP jQuery 数据库 BI HTML5 Spring Apache Hadoop .NET API HTML SDK IIS Fedora XML LBS Unity Splashtop UML components Windows Mobile Rails QEMU KDE Cassandra CloudStack FTC coremail OPhone CouchBase 云计算 iOS6 Rackspace Web App SpringSide Maemo Compuware 大数据 aptech Perl Tornado Ruby Hibernate ThinkPHP Spark HBase Pure Solr Angular Cloud Foundry Redis Scala Django Bootstrap 个人资料 lijianhe043 访问:161168次 积分:2764分 排名:第3118名 原创:94篇 转载:162篇 译文:4篇 评论:55条 文章搜索 文章分类 版本控制(1) asp.net(20) oracle(35) pb实例(83) pb知识库(80) pb(PowerBuilder)异常及错误列表(14) PFC(3) sql server(17) sybase(16) 其它(9) 编程(14) 编程俱乐部(3) 随笔(1) API(2) PB开发工具下载地址(1) 文章存档 2014年01月(1)2013年12月(1)2013年11月(2)2013年10月(3)2013年08月(1)2013年07月(1)2013年06月(2)2013年04月(1)2013年03月(7)2013年02月(5)2013年01月(1)2012年12月(3)2012年11月(1)2012年10月(5)2012年09月(9)2012年08月(13)2012年07月(17)2012年06月(10)2012年05月(1)2012年03月(8)2012年02月(9)2012年01月(6)2011年12月(13)2011年11月(10)2011年10月(18)2011年09月(6)2011年08月(8)2011年07月(1)2011年06月(6)2011年05月(3)2011年04月(10)2011年03月(6)2011年02月(1)2011年01月(46)2010年12月(24) 阅读排行 word无法显示图片的问题终于搞定!oh yeah!(6398) 求解:ora-28547:连接服务器失败,可能是 Oracle Net 管理失败(5336) thinkpad e40 怎么开启麦克风(3071) 用plsqldeveloper创建表为字段加注释时出现乱码解决方法(2867) 【PB】DBMS is not supported in your current installation解决方案(2863) 在Word2003中打开Word2007文档的方法及教程下载(2619) 启动/关闭:请指定主机和目标数据库身份证明 (2397) PB得到本机的名称和IP地址MAC地址(2241) 【PB】PowerBuilder中的一些不太常用的方法(2163) pb删除指定文件夹下所有文件(1910) 评论排行 pb插入ole控件点击insert control时pb应用程序自动关闭解决思路(6) PB得到本机的名称和IP地址MAC地址(6) thinkpad e40 怎么开启麦克风(5) 【PB】不求人一招搞定低版本PB连接高版本SQLServer(4) PB中treeview 的checkboxes用法完整版(3) 【PB】PB调用WebService(3) 如何在PB中使用WINSOCK控件(3) PB调用C#编写的DLL(2) PB电子书,PB电子文档,PB学习资料,PowerBuilder电子书,PowerBuilder电子文档,PowerBuilder学习资料下载地址(2) 【PB】DBMS is not supported in your current installation解决方案(2) 推荐文章 最新评论 【PB】pb打开pbw时提示Attempt to open datawindow failed错误解决办法 kaxier5000: 执行后不再报错,还是打不开………… 【PB】PowerBuilder中的一些不太常用的方法 lzqslhlj: 高人,受到启发了 PB电子书,PB电子文档,PB学习资料,PowerBuilder电子书,PowerBuilder电子文档,PowerBuilder学习资料下载地址 ming578422242: 收下了,谢谢 PB电子书,PB电子文档,PB学习资料,PowerBuilder电子书,PowerBuilder电子文档,PowerBuilder学习资料下载地址 memory28kb: 多谢了 PB调用C#编写的DLL lijianhe043: @lkj741:欢迎一起学习交流 PB调用C#编写的DLL lkj741: 你好,我看了你空间的几篇文章,感觉你总结的很好,我是最近才学pb 的,在学pb 的路上我感觉自己没有... 【SqlServer】行列倒置示例 liu12qw: 牛 【PB】PB调用WebService yaochuanlulazx: 很受用,感谢了 【PB】数据窗口的修改属性 u012491575: 321312 【SqlServer】经典SQL语句 mfkpie: 火火火