PB中TreeView控件使用技巧_第1頁
PB中TreeView控件使用技巧_第2頁
PB中TreeView控件使用技巧_第3頁
PB中TreeView控件使用技巧_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)

文檔簡介

1、PB中TreeView控件使用技巧PB中TreeView控件使用技巧 PB中TreeView控件使用技巧 PowerBuilder中的TreeView 控件為樹狀游覽,類似于WINDOWS的資源管理器,其特點是信息項呈樹狀層次結(jié)構(gòu),能更清晰地表現(xiàn)主、細(xì)目關(guān)系 ,操作非常方便。在應(yīng)用中可將其與DataWindow 配合使用, 一個提供信息的分類體系,一個提供具體信息,達到珠連碧合的奇妙效果。它特別適用于多級信息的分類檢索, 是多級菜單所無法比似的,它的表現(xiàn)形式深受程序設(shè)計人員和廣大用戶的喜愛,在許多應(yīng)用軟件中都能看到她的英姿。 在PowerBuilder下,TreeView 控件的應(yīng)用

2、較其它控件要復(fù)雜得多,剛接觸它時往往有些不知所措。但如果將它的機理搞清楚,掌握它也不是很難的事。下面我結(jié)合長白公司圖書分類檢索的實例,把TreeView 控 件的使用方法和大家探討一下。 一、應(yīng)用TreeView 控件的一般步驟 1、 建立一個應(yīng)用,并設(shè)好與數(shù)據(jù)庫的接口,這是操作數(shù)據(jù)庫的前提。 2、 在應(yīng)用中建一應(yīng)用窗口W_1,在其上加入二個名為dw_3和dw_4的datawindow控制對象和一個名為TV_1的TreeView對象。 3、 修改DW_3屬性 General:把Datawindow object name填寫一個已存在的名為DW_date的datawindow(注意:它與dat

3、awindow控制對象是不同的),用于生成樹視圖項,將其Visible項設(shè)為不可見。 4、 修改DW_4屬性 General:把Datawindow object name填寫一個已存在的名為DW_TS的datawindow對象,用于顯示查詢出的具體內(nèi)容。 5、 編輯TV_1的屬性 TreeView的樹視圖項不能直接編輯,必須在Script中編寫程序。 Picture:在Picture Name中加入四個不同的圖標(biāo),用于代表樹視圖中的兩個層次(一、二級)、兩種狀態(tài)(未選、選中)。 General:可根據(jù)具體應(yīng)用設(shè)定是否選中,其中: Delete Items:運行中是否允許刪除表項。 Disab

4、le PragDrog: 運行中是否允許拖放表項。 Edit Labels: 運行中是否允許單擊表項來改變表項的標(biāo)題。 Show Buttons:是否在表項放顯示+-按鈕,有示相對的擴展和收縮。 Hide Selection:當(dāng)該控件失去焦點時,選中項是否以高亮度顯示。 Show Line:表項間是否加一豎線。 Lines At Root:所有根層表項是否用豎線連接。 Indentation:子表項相對于父表項的向右縮進度。 6、 編寫TV_1的Script 這里是TreeView控件的關(guān)鍵,也是難點。 二、TreeView 控件的信息構(gòu)成及創(chuàng)建 樹視圖項TreeViewItem是TreeVi

5、ew 控件的基本信息單位,樹視圖項的生成一般有二種方法,一種是先生成根層視圖項,再在應(yīng)用中動態(tài)生成下級視圖項,另一種是把全部樹視圖項一次和成。兩種方法各有優(yōu)點,請根據(jù)具體情況選用,本例中采用后一種方法。 1、 樹視圖項TreeViewItem的主要屬性 Label:String 型,樹視圖項的顯示信息。 Data:Any型,樹視圖項的內(nèi)部值。 Level:Integer型,樹視圖項在樹視圖中級別。 Children:Boolean 型,它決定該項是否有下一層(如圖中書名)。 PictureIndex:Integer 型,該項非選中時所用的圖標(biāo)在圖標(biāo)隊列中的編號。 SelectedPicture

6、Index:Integer型,該項選中時所用的圖標(biāo)在圖標(biāo)隊列中的編號。 2、 生成TreeViewItem項用到的函數(shù) InsertItemFirst():將加入項作為第一項 InsertItemLast():將加入項作為最后一項 InsertItem():將加入項插入到指定項的后面 InsertItemSort():按順序放置。 3、 TreeView的常用事件 Constructor: 該事件在控件創(chuàng)建時觸發(fā),可在這里構(gòu)造TreeViewItem。 Click:單擊TreeViewItem項時,執(zhí)行查詢程序。 Double Click: 雙擊TreeViewItem項時,執(zhí)行查詢程序。 I

7、temPopulate 事件: 該事件在某TreeViewItem項首次展開時觸發(fā), 觸發(fā)的同時系統(tǒng)會將 該TreeViewItem項的句柄通過參數(shù)handle 傳遞過來。它主要用來生成對應(yīng)項的下層信息項。主要用于第一種方法。 三、 事件代碼 1、樹視圖控件TV_1的constructor事件代碼 wanqi 1999.6.28integer li_rowcount,li_rowstring li_current_dn,li_last_dn,li_current_ei,li_last_ei/聲明二個樹視圖的實例變量treeviewitem itvi_level_one,itvi_level_t

8、wo/long ii_h_l_one/long ii_h_l_twodw_3.settransobject(sqlca)/dw_3為隱含的數(shù)據(jù)窗口,存有生成樹的數(shù)據(jù)li_rowcount=dw_3.retrieve()/行數(shù)dw_3.setsort("lb,pm")dw_3.sort()/生成樹視圖的各級樹視圖項for li_row=1 to li_rowcountli_current_dn=dw_3.object.lbli_row/DW_3對象中"LB類別"li_current_ei=dw_3.object.pmli_row/DW_3對象中"

9、PM品名"if isnull (li_current_ei) thenli_current_ei=""end ifif li_current_dn< >li_last_dn then/IF LB不與一級視圖項重復(fù)/設(shè)置一級樹視圖項itvi_level_one.label=dw_3.object.LBli_row/視圖項的顯示信息itvi_level_one.level=1 /級別itvi_level_one.data=li_current_dn/視圖項的內(nèi)部信息itvi_level_one.pictureindex=1/沒選中時所用的圖標(biāo)序號itvi_

10、level_one.selectedpictureindex=3/選中時使用的圖標(biāo)序號itvi_level_one.children=(li_current_ei< >' ')/樹視圖是否有下一級ii_h_l_one=this.insertitemlast(0,itvi_level_one)/將項加入到一級樹的最后一項end if/設(shè)置二級樹視圖項if li_current_dn< >li_last_ei thenif li_current_ei<>' ' thenitvi_level_two.label=dw_3.objec

11、t.pmli_rowitvi_level_two.level=2itvi_level_two.data=li_current_dnitvi_level_two.pictureindex=2itvi_level_two.selectedpictureindex=4itvi_level_two.data=li_current_eiitvi_level_two.children=falseii_h_l_two=this.insertitemlast(ii_h_l_one,itvi_level_two)/將項加入到二級樹的最后一項end ifend ifli_last_dn=li_current_dn/設(shè)比較項li_last_ei=li_current_einext 2、tv_1控件的clicked事件代碼string s1treeviewitem iithis.getitem(handle,ii)s1=string(ii.label)choose case

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論