HyperLink
Bejelentkezés
E-mail: 
Jelszó: 





Skip Navigation Links
 

Könyvtárstruktúra megjelenítése TreeView kontrolban


Példaprogram letöltése

9948 bájt

Cikkünkben egy olyan alkalmazást készítünk el, mely egy tetszőlegesen megadott könyvtárnév elérési útvonala alapján kigyűjti az adott mappában található alkönyvtárak, illetve állományok neveit, és felfűzi ezeket egy TreeView kontrol csomópontjaira, mintegy fa-struktúrában megjelenítve az egyes elemek neveit, szülő-gyermek kapcsolataikat.

Az alkalmazás Form-ján elhelyezett TextBox kontrolban kell megadnunk a listázandó mappa elérési útvonalát, majd a ’Feltöltés’ feliratú gombra kattintva indítható a művelet.
A példában egy FillTreeView nevű saját metódussal valósítjuk meg a TreeView kontrol feltöltését. A metódus meghívása előtt ellenőrizzük, hogy létezik-e a megadott könyvtár. A művelet végrehajtásához rekurziót használunk.
A TreeView kontrol csomópont-listájában futtatás előtt létre kell hoznunk egy gyökércsomópontot, melyet átadunk a feltöltő metódusnak a mappa nevét tartalmazó karakterlánc kíséretében:
private void fillButton_Click(object sender, System.EventArgs e)
{
  ...
  if (FillTreeView(pathText.Text,dirTree.Nodes[0]) != 0)
  {
     ...
  }
}
A metódus kódjában először létrehozunk egy információs objektumot a megadott mappához:
private int FillTreeView(string strDirectory, TreeNode nodeParent)
{
  int res = 0;
  try
  {
    DirectoryInfo curDirectory = new  DirectoryInfo(strDirectory);
Létrehozunk egy-egy listát az állományok és alkönyvtárak nevei számára:
    DirectoryInfo[] directoryList;
    FileInfo[] fileList;
A listákat feltöltjük az említett nevekkel:
    directoryList = curDirectory.GetDirectories();
    fileList = curDirectory.GetFiles();
Majd végigmegyünk a listákon úgy, hogy amikor a könyvtárak neveit vesszük sorra, mindegyikre meghívjuk a FillTreeView metódust újra. Az egyes elemek felfűzéséhez TreeNode objektumokat hozunk létre, melyek property-jeiben megadjuk többek közt, hogy milyen ikon jelenjen meg a név mellett. Az ikonok sorszáma a TreeView kontrol ImageList property-jében megadott lista megfelelő elemének sorszámával azonos. Végül a TreeNode objektumot felfűzzük a TreeView kontrol Node-listájára:
    foreach (FileInfo curfileInfo in fileList)
    {
      TreeNode newFileNode = new TreeNode();
      newFileNode.Text = curfileInfo.Name;
      newFileNode.ImageIndex = 1;
      newFileNode.SelectedImageIndex = 1;
      nodeParent.Nodes.Add(newFileNode);
    }
A könyvtárak esetén is TreeNode objektumot hozunk létre, paraméterezzük, majd a listára fűzzük. A ciklus végén meghívjuk a metódust újra:
    foreach (DirectoryInfo curdirInfo in directoryList)
    {
      TreeNode newDirNode = new TreeNode();
      newDirNode.Text = curdirInfo.Name;
      string strDir;
      strDir = curdirInfo.FullName;
      nodeParent.Nodes.Add(newDirNode);
      FillTreeView(strDir, newDirNode);
    }
  }
  catch
  {
    ...
  }
}
A művelet végén a könyvtárstruktúra látható a TreeView kontrolban. Az egyes fa-levelek mellett található ikonok egy imgList nevű lista-objektum elemei, melyeket az alkalmazás mappájának /images almappában helyeztünk el.

Cikksorozat

#IDKategóriaCikk címeSorozat
1621DelphiMySQL szerverek elérése Delphi-ből1. rész
1632DelphiMySQL szerverek elérése Delphi-ből2. rész
1641DelphiMySQL szerverek elérése Delphi-ből3. rész
1649DelphiMySQL szerverek elérése Delphi-ből4. rész


Könyv
Ez a cikk megtalálható ebben a könyvben: C# Software Offline 2003 évkönyv 12. oldal

Felhasználási feltételek
A Software Online szoftverfejlesztői magazin mindegyik cikke, minden megjelent képe, és egyéb publikált anyaga szerzői jog védelme alatt áll! Bármilyen formában történő másodlagos terjesztésük, közzétételük vagy felhasználásuk kizárólag a kiadó előzetes írásbeli engedélyével történhet!

Copyright © 1999-2012 Animare Software Kft. Minden jog fenntartva!
| Készült: Animare Stúdió | Adatvédelem | Kapcsolat |