VB控件 treeview用法詳解_第1頁
VB控件 treeview用法詳解_第2頁
VB控件 treeview用法詳解_第3頁
VB控件 treeview用法詳解_第4頁
VB控件 treeview用法詳解_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、VBTreeView控件使用詳解(2012-06-1615:08:16)標簽:分類:第一小時:學習直接用代碼將數(shù)據(jù)填充到樹控件中。為什么要先學習直接用代碼將數(shù)據(jù)填充到樹控件中因為這種方法是最簡單的,代碼也最容易理解,學習樹控件,先將這個學會,已經(jīng)掌握了一半,所以先不要急著想怎么將表中的數(shù)據(jù)填充到樹控件中,在第一小時里,樹控件和表完全沒有關系。目的:我們要在樹控件中建立如下的一個3層級關系水果|_蘋果|_紅富士|_國光|_葡萄|_紅提子|_青提子解釋:水果包含2種,一種是蘋果,一種是葡萄,蘋果又包含2種,一種是紅富士,一種是國光,葡萄也如此。在這里:“爺”是水果,“父”是蘋果,葡萄,“子”是紅富

2、士,國光,紅提子,青提子。概括如下:爺(只能有一個):水果父(這里有2個):父1:蘋果;父2:葡萄子(這里有4個):子1:紅富士(父1蘋果的子);子2:國光(父1蘋果的子);子3:紅提子(父2葡萄的子);子4:青提子(父2葡萄的子)1、新建一個窗體,在窗體上放置兩個控件,一個是Treeview,一個是Imagelist如何找到這兩個控件Treeview控件在“工具箱”的榔頭加扳手圖標(其他控件)中選“MicrosoftTreeviewControl,VersionImagelist控件在“工具箱”的榔頭加扳手圖標(其他控件)中選“MicrosoftImagelistControl,Versio

3、nTreeview控件大家都明白干什么用的,Imagelist控件是干什么用呢原來這個控件是放圖標用的,如果你想在樹控件中顯示圖標的,這個圖標都將儲存在ImageList控件中。2、設置這兩個控件的屬性首先要講清楚控件的屬性設置有2種,一種是設置這個控件在ACCESS中的屬性,比如名稱等。一種是設置這個控件本身的屬性。要設置這個控件在ACCESS中的屬性,選中控件后按鼠標右鍵選“屬性”就可以了。跟我們平時設置文本框什么的一樣。要設置這個控件本身的屬性,只要雙擊這個控件就可以了。1)設置Treeview控件在ACCESS中的名稱屬性,將名稱設置為“Treeview2)設置Imagelist控件在

4、ACCESS中的名稱屬性,將名稱設置為“Image”2)設置Imagelist控件本身的屬性,雙擊控件后,在彈出來的設置框中選Images”,單擊InsertPicture”按鈕,在你電腦中選擇你需要的圖標。在“Key:”欄中填入伙1”。其他默認設置不用改。3)設置Treeview控件本身的屬性,雙擊控件后,在彈出來的設置框中選“General”,在這個選項面版中有很多項設置,大多數(shù)是設置樹控件的顯示格式,你自己慢慢研究。這里我們將第一項“Style”選7,在第五項“Imagelist”選項中將我們放置的Imagelist控件“Image”選上。這項設置就將圖標和樹控件聯(lián)系了起來。3、寫代碼將

5、數(shù)據(jù)填充到樹控件中代碼寫在哪里我們希望窗體一打開,數(shù)據(jù)就自動填充在樹控件中,所以這個代碼就寫在窗體的加載事件中,代碼及解釋如下:VBScriptcode復制代碼PrivateSubForm_Load()*用代碼將數(shù)據(jù)填充到樹控件中i*DimNodeindexAsNode*解釋:定義Node*Node是樹控件的對象*每個Node都有三個東西,圖標,文本,索引值*圖標和文本都是實際顯示出來的,索引值是隱含的*設置最頂級的“爺”:I*SetNodeindex=,爺,水果,K1)=True*樹控件填充數(shù)據(jù)的方法是*括號內(nèi)是Add方法的參數(shù)*在這里“爺”是索引值,“水果”是將顯示的文本,“K1”是圖標的

6、索引值*Sorted是指Node的排序,True就是指采用排序,默認是按拼音*第一,二個參數(shù)是空的*具體的參數(shù)設置以后你可以慢慢詳細研究*設置第二級“父”I*SetNodeindex=爺,tvwChild,父1,蘋果,K1)=TrueSetNodeindex=爺,tvwChild,父2,葡萄,K1)=True*第一個參數(shù)“爺”是指這一層對應上層“爺”的*tvwChild參數(shù)是規(guī)定格式,指相對來說,這一層是爺?shù)淖訉?“父1”是索引值,因為“父”有2個,而索引值是唯一的,所以要編號,用“父1”“父2”分開*“蘋果”,葡萄,是要顯示的文本,ki是顯示圖標的索引值*現(xiàn)在知道為什么在“爺”層設置時,第一

7、,第二個參數(shù)是空的,因為這是最頂層*設置第三級“子,I*SetNodeindex=父1,tvwChild,子1,紅富士,K1)=TrueSetNodeindex=父1,tvwChild,子2,國光,K1)=TrueSetNodeindex=父2,tvwChild,子3,紅提子,K1)=TrueSetNodeindex=父2,tvwChild,子4,青提子,K1)=True*第一個參數(shù)“父1,2”是指這一層對應上層“父”的,但要注意對應的是“父1”還是“父2”*tvwChild參數(shù)是規(guī)定格式,指相對來說,這一層是父的子層*“子1”是索引值,因為“子”有4個,而索引值是唯一的,所以要編號,用“1,

8、2,3,4”分開*“紅富士”等是要顯示的文本,K1是顯示圖標的索引值*EndSub就這么多代碼,總共十幾行,就可以在樹控件中顯示數(shù)據(jù)了,很簡單吧。第一小時結束。第二小時:學習怎樣將樹控件和數(shù)據(jù)庫中的數(shù)據(jù)綁起來在第一小時里,我們學習了怎樣直接用代碼填充樹控件,但在實際使用中,這種方法的應用性不大,只有將樹控件與數(shù)據(jù)庫中的數(shù)據(jù)結合起來,才能有真正的應用。其實綁定數(shù)據(jù)庫的方法和直接用代碼填充是大同小異的,我們要做的只是將Add的參數(shù)里,原來我們手工輸入的變換一下,讓程序知道去數(shù)據(jù)庫中找數(shù)據(jù)。目的:將數(shù)據(jù)庫中的數(shù)據(jù)與樹控件綁定背景:我們想在樹控件中顯示銷售客戶的層級列表,這個銷售客戶的分層是這樣的,先

9、按“大區(qū)”,再按“省份”,最后到“客戶”我們在數(shù)據(jù)庫中建立了三個表,字段如下:大區(qū)表:大區(qū)ID,大區(qū)名稱省份表:省份ID,省份名稱,所屬大區(qū)客戶表:客戶ID,客戶名稱,所屬省份這三個表互相建立了關系1、新建一個窗體,在窗體上放置兩個控件,一個是Treeview,一個是Imagelist2、設置這兩個控件的屬性在這里和第一小時唯一的區(qū)別是我們在Imagelist控件的設置時,導入了兩個圖標,一個KEY為K1,一個為K2,原來樹控件的Node圖標是可以變化的,我們準備某個項沒有選中時的圖標是一個沒有打開的文件夾,選中時是一個打開的文件夾,以區(qū)別。3、編寫代碼,如下:VBScriptcode復制代碼

10、PrivateSubForm_Load()*用數(shù)據(jù)庫表(查詢也一樣)中數(shù)據(jù)填充樹控件DimRecAsNewDimstRecQLAsStringDimItemAsIntegerDimiAsIntegerDimnodindexAsNode*定義各類I*設置最頂級的爺I*Setnodindex=,爺,銷售客戶,K1,K2)=TrueI*這里的設置跟第一小時里基本是一樣的*但最后多了一個K2”的參數(shù),K1”代表的是未被選中時的圖標,“K2”代表是被選中后的圖*仔細觀察一下,你會發(fā)現(xiàn)選中和沒選中的圖標是不一樣的,一個是一個文件夾,一個是一個打開的文件夾*設置第二級父I*大區(qū)表,adOpenKeyset,

11、adLockOptimistic,adCmdTableDirectFori=0To-1Setnodindex=爺,tvwChild,父&(大區(qū)ID),(大區(qū)名稱),K1,K2)=TrueNext*第一行意思是打開一個表去尋找數(shù)據(jù)(查詢也是可以的)*關鍵在與Add參數(shù)的變化*大家看第三個參數(shù),在第一小時里,這里是“父1”,這里用(“大區(qū)ID)來代替1”,意思是用表的編號來代替手工編號*第四個參數(shù)也是一樣,直接用表中的名稱字段來取代原來我們手工的命名*設置第三級子I*省份表,adOpenKeyset,adLockOptimistic,adCmdTableDirectFori=0To-1Setnod

12、index=父&(所屬大區(qū))tvwChild,子&(省份ID”),(省份名稱“),“K1“,“K2”)=TrueNext*不用再解釋了吧*要注意的是,定義第一個參數(shù)的時候,不是用“父&(大區(qū)ID),而是用“父&(所屬大區(qū)”)*這個意思是:用省份表中關聯(lián)大區(qū)表的字段,而不是直接用大區(qū)表的ID*設置第四級孫I*客戶表,adOpenKeyset,adLockOptimistic,adCmdTableDirectFori=0To-1Setnodindex=子&(所屬省份)tvwChild,孫&(客戶ID),(客戶名稱),K1,K2)=TrueNextI*到此你應該完全明白了I*EndSub第二小時結束

13、第三小時:將樹控件與窗體結合我們做樹控件,當然不可能單單為了顯示層級數(shù)據(jù),我們希望跟窗體結合,當我們單擊樹控件中的某個客戶時,窗體上能相應的轉到這個客戶的資料。目的:將樹控件與窗體結合1、我們還是沿用第二個小時里的例子,但在建立窗體時,將窗體的數(shù)據(jù)來源設為“客戶表”,并在窗體中放置好客戶表的字段。2、寫入如下代碼:VBScriptcode復制代碼PrivateSubTreeview_NodeClick(ByValNodeAsObject)I*樹控件的鼠標點擊事件為NodeClick*DimstrAsString*定義一個篩選*If=銷售客戶OrLike父*OrLike子*Thenstr=I*在第一小時里,我們說了Node有三個東西,圖標,文本,索引值*文本就是text,索引值就是Key這里將就是說當我們點擊爺,

溫馨提示

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

評論

0/150

提交評論