Treeview elem

Tehát kezdjük azzal, ami egy TreeView?

Nyitott Explorer (ha természetesen a Windows :) - a bal oldalon, akkor kitalálta, a TreeView, és a jobb oldalon, ListView (ez csak azt mondom). TreeView elem lehetővé hierarchikusan strukturált adattárolás képek tárolására (például egy mappát, a Windows zászló határozatlan típusú fájlokat, stb) használunk ImageList elem - a velük dolgozó meglehetősen egyszerű, és érintse meg ezt a témát, amíg ...

Nyissa meg az új űrlapot, és hozzon létre egy TreeView elemet, amely az MS Windows Common Controls vezérlésében található. Létrehozunk egy CommandButton-ot, a Click-eseményen, amiről mindent leírunk.

Először is, az elmélet. Ez az elem egy fa nevű adatstruktúrát valósít meg, és a fa minden elemét csomópontnak nevezik. A fa felső csomópontját gyökércsomópontnak hívják, és az alábbi csomópontokat gyermekcsomóknak hívják. Tekintsük ezt az internetes struktúrára: a ru domain egy gyökér csomópont, a ru narod tartománya pedig a gyermekcsomópont. Az soobcha-vb domain népdomainje a szülődomain. Ezzel azt hiszem, minden világos.

Most pedig lássuk a tulajdonságait TreeView elem -, hogy úgy tűnjön, mint egy karmester - szükség van, hogy az értéke egyenlő 7 stílus és vonalstílus - 0. Még sok tulajdonságok, és azt hiszem, mindet nem kell leírni - sokan közülük szabvány.

Most menj a kódablakba és írd be a TreeView1.Node-ot, majd tedd a pontot. Láttuk: a Csomópontok család 5 összetevőt tartalmaz, amelyekkel dolgozni kell. Kezdjük a fő és a legösszetettebb Add-ot.

Nézzük meg a gyökércsomópontot:

TreeView1.Nodes.Add. "internet", "internet"

Futtassa a programot, és ne nyomja meg a gombot - látta? - Igen, volt egy internetes csomópont. De eddig semmi sem világos, miért olyan sok vessző, és két "internet". Folytassuk a csomópontok létrehozását, és minden világossá válik! Bemutatjuk:

TreeView1.Nodes.Add "Internet", tvwChild, "en", "ru"

Bevezetett, és kattintsunk a start, és a gombot, ha az összes gépelt vagy másolt itt, akkor egy hiba történt. Kezdjük megérteni: mit akarunk csinálni? - hozzon létre egy gyermekcsomót ru a gyökér internethez - ezt a tvwChild értéke jelzi - úgy gondolom, ez érthető. De miért a hiba? Ezt követően mindent helyesen vezettünk be, mert az első sor dolgozott. Csak egyetlen jelentése van - az internet. Nos, hiszem? Azaz, az első sorban, ha szorosan követte a munkáját a program jelent meg a TreeView Internet (nagybetűkkel), és az internet (egy kicsit), ez csak egy gombot. A második sorban nem a közvetlen nevet adjuk meg, hanem a név kulcsát, azaz internet. Megjavítjuk, futtatjuk, kattintsunk dupla kattintásra az interneten - és itt van a gyermekcsomó ru. Nézzük meg ennek megfelelően az 1. szint egy pár doménjét:

TreeView1.Nodes.Add "internet", tvwChild, "com", "com"
TreeView1.Nodes.Add "internet", tvwChild, "net", "net"
TreeView1.Nodes.Add "internet", tvwChild, "edu", "edu"

Nem fáradt az egész internetre való kattintás, ugye? - Nos, mutassuk be:

Nehéz - de ki mondta egyszerűen? Itt részben megismerkedünk a tétel összetevőjével. Nos, még egy csomópontot adunk hozzá ru-nak, akkor minden világos - magunk csinálhatják.

"A gyermek csomóponttól a szülőig történő követésével a Narod.ru webhelyére kerül
TreeView1.Nodes.Add "en", tvwChild, "nép", "nép"
TreeView1.Nodes.Add "narod", tvwChild, "www", "www"

És innen innen, akkor eljut a webhelyre, ahonnan elolvassa

TreeView1.Nodes.Add "narod", tvwChild, "soobcha-vb", "soobcha-vb"
TreeView1.Nodes.Add "en", tvwChild, "boom", "boom"
TreeView1.Nodes.Add "en", tvwChild, "lgg", "lgg"

Most lássuk a módját, hogy egy másik weboldal ingyenes tárhely - www.boom.ru Minden valószínűleg be

TreeView1.Nodes.Add "boom", tvwChild, "www", "www"

És ismét hiba! Egyszerűen, már hozzászokott ahhoz, hogy a kulcs ugyanaz (legalábbis értelme - emlékezzen a regiszter történetére?). De végül is nem lehet két azonos kulcs - hogyan kell hozzáadni a gyermek csomópontokat. Ebben a vonatkozásban a "teljes" elérési utat kell használni a csomóponthoz, azaz. ru - ez lenne internet-ru, a www.narod.ru - internet-ru-narod-www. itt
nem lehet véletlen egybeesés. Előnyei mindkét változat meglátja idővel, ha biztos benne, hogy nem lesz két egység azonos névvel (bár ez ritka), akkor van értelme, hogy az eredeti változat, és minden más esetben, akkor kell használni a „teljes” módon. Itt kapott ilyen kódot:

TreeView1.Nodes.Add. "internet", "internet"
TreeView1.Nodes.Add "internet", tvwChild, "internet-ru", "ru"
TreeView1.Nodes.Add "internet", tvwChild, "internet-com", "com"
TreeView1.Nodes.Add "internet", tvwChild, "internet-net", "net"
TreeView1.Nodes.Add "internet", tvwChild, "internet-edu", "edu"
TreeView1.Nodes.Item ("internet") Expanded = Igaz
TreeView1.Nodes.Add "internet-ru", tvwChild, "internet-en-narod", "nép"
TreeView1.Nodes.Add "internet-en-narod", tvwChild, "internet-en-narod-www", "www"
TreeView1.Nodes.Add "internet-ru-Narod" tvwChild, "internet-ru-Narod-soobcha-vb", "soobcha-vb"
TreeView1.Nodes.Add "internet-ru", tvwChild, "internet-ru-boom", "boom"
TreeView1.Nodes.Add "internet-ru-boom", tvwChild, "internet-ru-boom-www", "www"
TreeView1.Nodes.Add "internet-ru", tvwChild, "internet-ru-lgg", "lgg"
TreeView1.Nodes.Add "internet-ru-lgg", tvwChild, "internet-ru-lgg-www", "www"

Bonyolult, első pillantásra - de olyan bonyolult struktúrát kaptunk ...
Most beszéljünk a csomópontok egyéb összetevőiről: Count - visszaadja a csomópontok számát a Csomópontok családban. Bemutatjuk:

Számos csomópont lesz az ablakban - ebben az esetben 12.

Véletlenül nem nyomja meg újra a gombot. kulcsok már létrehozásra kerültek, és ezek már léteznek. Tedd be az elejét:

És az új értékek hozzáadása előtt a TreeView teljesen törlődik. És ha törölni szeretné a csomópontot a program futása közben? - helyesen használja az Eltávolítás parancsot:

'Távolítsd el a ru csomópontot, amelyet oly sokáig hoztunk létre.
TreeView1.Nodes.Remove ("internet-ru")

És most egy kicsit a képekről:

TreeView1.Nodes.Add "internet", tvwChild, "internet-org", "org", App.Path "\ pic1.bmp", App.Path "\ pic1sel.bmp"

Így a kép jelenik meg a mappát, ahová menteni egy programot (vagy még nem mentett meg?), És a név pic1.bmp, és ha a helyén van kiválasztva, a neve pic1sel.bmp. Egyszerűen igen? És itt is ugyanaz a helyzet csak az ImageList (az MS Windows Common Controls-2 esetén) használatával:

ImageList1.ListImages.Add. LoadPicture (App.Path "\ pic1.bmp")
ImageList1.ListImages.Add. LoadPicture (App.Path "\ pic1sel.bmp")
TreeView1.ImageList = ImageList1
TreeView1.Nodes.Add "internet", tvwChild, "internet-org", "org", 1, 2

A számok rendben vannak rendelve, de beállíthatja a kulcsot is. Sokkal hosszabb, de ha rajzokat szeretne rajzolni a mappáihoz, és közülük 100 van, mindig mindig írja le a fájl elérési útját? Nos, mindenütt írunk tvwCildet, de nem lehet más? Talán új vagy új csomópontot akarok beilleszteni - nincs probléma.

TreeView1.Nodes.Add "internet-com", tvwNext, "internet-tv", "tv"

Adja hozzá a domain com - domain tv után, és ha korábban - helyesen:

TreeView1.Nodes.Add "internet-com", tvw Előzmények, "internet-su", "su"

Ugyanaz a dolog, csak azelőtt és a domain su.

És először az új csomópontot szeretné elhelyezni:

TreeView1.Nodes.Add "internet-com", tvwFirst, "internet-to", "to"

TreeView1.Nodes.Add "internet-com", tvwLast, "internet-med", "med"

Tehát a lehetőségek véget értek ...

Itt adtam meg egy leírást a TreeView-ról, a vele való együttműködés módjai, például a keresés, a mentés és a betöltés sokkal bonyolultabbak.

Kapcsolódó cikkek