Arborele element de vizualizare

Deci, să începem cu ceea ce este un TreeView?

Explorer Deschideți (dacă sunt, desigur, pentru Windows :) - pe stânga, ai, treeview ghicit, și pe dreapta, ListView (acest lucru doar spun). Element TreeView oferă un mijloc de stocare a datelor structurate ierarhic pentru stocarea imaginilor (cum ar fi un dosar, steagul pentru Windows pentru un tip nedefinite de fișiere, etc.) este utilizat elementul ImageList - lucrul cu ei este destul de simplu, și atinge acest subiect până când nu vom ...







Deschideți noua formă și creați un element TreeView care este în controlul comenzilor comune MS Windows. Vom crea, de asemenea, un CommandButton, în evenimentul Click de care vom descrie totul.

Pentru început, teorie. Acest element implementează o structură de date cunoscută sub numele de arbore, iar fiecare element al arborelui se numește un nod. Nodul superior al arborelui se numește nodul rădăcină, iar nodurile de mai jos se numesc noduri copil. Luați în considerare acest lucru pe structura internetului: domeniul ru este nodul rădăcină, iar domeniul nod pentru ru este nodul copil. Domeniul narod pentru domeniul soobcha-vb este domeniul părinte. Cu asta cred că totul este clar.

Acum, să aruncăm o privire asupra proprietăților elementului TreeView - pentru a face să pară un dirijor - trebuie să setăm valoarea Stilului la 7 și LineStyle la 0. Există mai multe proprietăți și nu trebuie să le descriu pe toate, multe dintre ele fiind standard.

Acum mergeți la fereastra de cod și tastați TreeView1.Nodes, apoi puneți punctul. Am văzut: Familia nodurilor conține 5 componente, cu care trebuie să lucrăm. Să începem cu Adăugarea principală și cea mai complexă.

Să facem nodul rădăcină:

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

Rulați programul și apăsați butonul - ați văzut-o? - Da, a fost un nod de Internet. Dar până acum nimic nu este clar, de ce atât de multe virgule și două "Internet". Să continuăm să creăm noduri și totul va deveni clar! Introducem:

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

A intrat și faceți clic pe start și pe buton și dacă ați introdus cu atenție sau copiat de aici, a apărut o eroare. Începem să înțelegem: ce am vrut să facem? - a crea un nod copil ru la Internetul rădăcină - acest lucru este indicat de valoarea tvwChild - cred că este de înțeles. Dar de ce eroarea? După aceea, am introdus totul corect, pentru că prima linie a funcționat. Există doar un singur înțeles - Internetul. Păi, bănuiesc? Anume, în prima linie, dacă ați urmat programul cu atenție, Internet (cu o literă de capital) a apărut în TreeView, și pe internet (cu unul mic), este doar o cheie. În al doilea rând nu specificăm numele direct, ci cheia acestui nume, adică pe internet. Îl vom rezolva, vom rula, vom face clic pe dublul clic pe Internet - și, aici este, nodul copil ru. Să creăm în consecință câteva domenii de nivel 1:

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

Nu te-ai săturat să faci clic pe internet tot timpul, nu? - Să introducem:

Este dificil - dar cine a spus asta pur și simplu? Aici suntem în parte familiarizați cu componenta Articolului. Ei bine, vom adăuga un cuplu mai multe noduri copil la ru, atunci totul este clar - puteți face-o singur.







"Urmând de la nodul copil la părinte veți fi duși la site-ul Narod.ru
TreeView1.Nodes.Add "ro", tvwChild, "narod", "narod"
TreeView1.Nodes.Add "narod", tvwChild, "www", "www"

Și urmând de aici, veți ajunge la site-ul de unde ați citit-o

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

Acum, să facem o cale către un alt site de hosting gratuit - www.boom.ru Totul probabil că va intra

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

Și din nou o greșeală! Pur și simplu, sunteți deja obișnuiți cu faptul că cheia este aceeași (cel puțin în sens - amintiți istoricul cu registrul?). Dar, după toate, nu pot exista două chei identice - cum să adăugăm atunci nodurile copilului. În acest sens, este necesar să se utilizeze calea "plină" către nod, adică pentru ru - ar fi internet-ru, pentru www.narod.ru - internet-ru-narod-www. aici
nu poate exista nici o coincidență. Avantajele ambelor versiuni veți vedea în timp, dacă sunteți sigur că nu vor exista două unități cu același nume (deși acest lucru este rar), are sens pentru a menține versiunea originală, precum și orice alt caz, trebuie să utilizați modul „complet“. Au primit aici un astfel de cod:

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 = True
TreeView1.Nodes.Add "internet-ru", tvwChild, "internet-en-narod", "narod"
TreeView1.Nodes.Add "internet-ru-narod", tvwChild, "internet-en-narod-www", "www"
TreeView1.Nodes.Add "internet-en-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"

Este complicat, la prima vedere - dar avem o structură atât de complicată ...
Acum hai să vorbim despre celelalte componente ale nodurilor: Count - returnează numărul de noduri din familia Nodes. Introducem:

Vom avea un număr de noduri în fereastră - în acest caz 12.

Din greșeală nu ți-ai apăsat din nou butonul. cheile au fost deja create, iar aceste valori există deja. Puneți-vă la început:

Și înainte de a adăuga noi valori, TreeView va fi complet eliminat. Și dacă trebuie să ștergeți nodul în timp ce programul se execută? - utilizați corect comanda Ștergere:

'Eliminați nodul ru, pe care l-am creat atât de mult.
TreeView1.Nodes.Remove ("internet-ru")

Și acum puțin despre imagini:

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

Astfel, imaginea este afișată în folderul în care ați salvat un program (sau nu ați salvat-o?), Și pic1.bmp numele, iar în cazul în care site-ul este selectat, pic1sel.bmp numele. Pur și simplu da? Și aici este același lucru numai folosind ImageList (este în MS Windows Common Controls-2):

ImageList1.ListImages.Add. LoadPicture (calea de aplicație "\ pic1.bmp")
ImageList1.ListImages.Add. LoadPicture (calea de aplicație "\ pic1sel.bmp")
TreeView1.ImageList = ImageList1
TreeView1.Nodes.Add "internet", tvwChild, "internet-org", "org", 1, 2

Numerele sunt atribuite în ordine, dar puteți seta și cheia. Este mult mai mult, dar dacă doriți să faceți desene pentru dosarele dvs. și sunt 100 de ele, atunci întotdeauna scrieți calea fișierului de fiecare dată? Ei bine, noi scriem pretutindeni tvwChild, dar nu poate fi diferit? Poate că vreau să introduc următorul sau un nod nou - fără probleme.

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

Adăugați după domeniul de domeniu com - domain, și dacă înainte - corect:

TreeView1.Nodes.Add "internet-com", tvwPrevious, "internet-su", "su"

Același lucru, chiar înainte și domeniul su.

Și doriți să puneți mai întâi noul nod:

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

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

Opțiunile s-au încheiat ...

Aici am dat doar o descriere a TreeView, metodele de lucru cu ea, cum ar fi căutarea, salvarea, încărcarea, sunt mult mai complicate.







Articole similare

Trimiteți-le prietenilor: