- 1 控件的不同部分
- 2 添加控件節(jié)點(diǎn)
- 3 當(dāng)父節(jié)點(diǎn)處于展開狀態(tài)時(shí)添加節(jié)點(diǎn)
- 4 刪除控件節(jié)點(diǎn)
- 5 展開與收縮節(jié)點(diǎn)
- 6 為節(jié)點(diǎn)選擇圖片
- 7 實(shí)現(xiàn)拖放
- 8 給控件增加一列
- 9 定義列數(shù)據(jù)類型
- 10 顯示工具條
- 11 添加節(jié)點(diǎn)副文本
- 12 在一個(gè)節(jié)點(diǎn)內(nèi)編輯文本
- 13 樹型控件排序
- 14 給節(jié)點(diǎn)添加檢查框與選項(xiàng)按鈕
- 15 虛模式
- 16 錯(cuò)誤信息
- 17 事件
- 18 方法
- 19 屬性
虛模式
- 2017-09-15 14:59:44
- 黃善超
- 3553
- 最后編輯:tmtony8 于 2017-09-15 15:24:52
默認(rèn)情況下,所有插入控件的節(jié)點(diǎn)必須包含若干文本,存儲(chǔ)在全局內(nèi)存。然而如果你有大量的項(xiàng)目, 需要太多內(nèi)存。 為了照顧到這一點(diǎn), ctTree控件能夠運(yùn)行在虛模式。
注意: 控件中的索引指針是長(zhǎng)整形。因此,控件不限于32,676項(xiàng)。 僅受限于當(dāng)前系統(tǒng)可用內(nèi)存的數(shù)。 因此,虛擬存儲(chǔ)也許不是必要的。
當(dāng)控件運(yùn)行在虛模式,所有文本在控件之外存儲(chǔ)。當(dāng)控件被繪制時(shí), 它將詢問(wèn)主程序每個(gè)節(jié)點(diǎn)的合適的文本。 控件仍然需要初始化節(jié)點(diǎn)數(shù)據(jù)。不同的是任何使用AddNode方法的任何文本將被忽略。
為了在虛模式中使用控件, 要執(zhí)行下列步驟:
?設(shè)置LoadType屬性為1 (虛模式)。任何時(shí)刻LoadType屬性改變,所有的控件中現(xiàn)有數(shù)據(jù)被刪除。你不能混用裝載類型。
?添加新節(jié)點(diǎn)至控件。因?yàn)樗械奈谋颈缓雎?,你提供控件什么本文都沒(méi)關(guān)系。然而, 所有的其他屬性數(shù)據(jù)必須提供。
?在GetNode(獲得節(jié)點(diǎn))事件中,有些腳本類型可以提供給控件合適的文本。文本可以以你想要的任何方式存儲(chǔ),但是最容易的方法的存儲(chǔ)在數(shù)列中。以下是在GetNode(獲得節(jié)點(diǎn))事件中腳本的一部分。必須注意控件中節(jié)點(diǎn)的索引起始值是0不是1。例:
ctTree.VirtualText = nCharArray[ nIndex + 1 ]
如果你需要顯示工具條,你需要使用SetTips事件和TipsText屬性。
如果你需要使用節(jié)點(diǎn)編輯功能,你需要用到SetLabelEdit事件與EditText屬性。
注意: 僅在每個(gè)節(jié)點(diǎn)的每個(gè)單元的文本被繪制之前, GetNode節(jié)點(diǎn)將被觸發(fā), 即使LoadType 屬性沒(méi)有設(shè)置為1(虛模式),也會(huì)發(fā)生。此時(shí),程序員可以使用VirtualAlign, VirtualForeColor,和VirtualText屬性改變文本如何在這時(shí)顯示。當(dāng)控件處在虛模式時(shí),為了給控件提供文本,該過(guò)程絕對(duì)需要。