C# - DirListBox kontrol

Visual Basic stílusú kontrolok 2. rész

forráskód letöltése
Cikksorozatunk mai számában a Microsoft.VisualBasic.Compatibility.VB6 névtér DirListBox kontrolját ismertetjük, melynek segítségével minimális kódolás árán kaphatunk egy hasznos eszközt, az adott meghajtón található mappák, illetve az ezekben lévő állományok listázására, így jól illeszthető fájlkereső funkcióval rendelkező alkalmazásokba. Egy példában bemutatjuk, hogyan kapcsolható a sorozat ezt megelőző számában bemutatott DriveListBox kontrolhoz.
A mellékelt példa használata előtt engedélyeznünk kell a használni kívánt DriveListBox és DirListBox kontrolokat a ToolBox testre szabásával. Ennek érdekében olvassa el a cikk Kezdeti beállítások című szakaszát.
Kezdeti beállítások
A bevezetőben említett névtér elemei már regisztrálva vannak, azonban ahhoz, hogy a ToolBox-on is megjelenjenek, el kell végeznünk az engedélyezést.
Ehhez kattintsunk a ToolBox valamely lapján az egér jobb gombjával, majd a megjelenő menüből válasszuk ki a Customize ToolBox pontot, a megjelenő ablakban a .NET Frameworks Components fület. A használni kívánt kontrol neve mellett gondoskodjunk a jelölőnégyzet kijelöléséről. Mai cikkünkben a DriveListBox és a DirListBox kontrolok mindegyikére szükségünk lesz, így mindkettőt fel kell vennünk a ToolBox-ra.

Mellékelt alkalmazás
A DirListBox kontrol a hagyományos ListBox kontrol utódja, annak minden tulajdonságával, kiegészítve néhány hasznos újdonsággal.
A példában a cikksorozat ezt megelőző számában bemutatott DriveListBox kontrollal való együttműködést ismertetjük. A DriveListBox kontrolban kiválasztva egy meghajtót a gyökérben megtalálható mappák jelennek meg a DirListBox kontrolunkban.
A két kontrol együttműködését kiegészítettük egy ListBox kontrollal, melyben a DirListBox kontrolban kiválasztott mappa tartalmát jelenítjük meg. A fájl lista tetszőleges elemére kétszer kattintva elindíthatjuk a kiválasztott alkalmazást a társított program segítségével. Ha ez csak a Jegyzetfüzettel lehetséges, akkor azt indítjuk el. Amennyiben a választott alkalmazás nem rendelkezik társított programmal, vagy nem indítható el, akkor hibaüzenetet adunk.
A DirListBox kontrol talán leginkább használható, és egyben a legfontosabb property-je a Path property, mely a következő formátumú:
Path
Osztály: DirListBox
string Path {get; set;}
Az éppen kijelölt mappa teljes fizikai elérési útvonalát adja meg, illetve állíthatjuk be ennek segítségével.
A program indulásakor, valamint a DriveListBox kontrol SelecetedIndex property-jének megváltozásakor értéket adunk a Path property-nek:
dirList.Path = drvList.Drive;
Illetve gondoskodunk, hogy a ListBox kontrol feltöltődjön az aktuális mappa tartalmával. A feltöltést a DirListBox kontrolra kattintáskor is elvégezzük. Ezt a FillList metódusba ágyaztuk, melyben először egy karakterlánc tömböt töltünk fel a fájlok elérési útjával:
files = Directory.GetFiles(dirList.Path + "\\");
...
Majd a csupasz fájlneveket helyezzük be a listába:
for(int j=0;j<files.Length;j++)  
{
  FileInfo fi = new FileInfo(files[j]);
  fileList.Items.Add(fi.Name);
}
A kiválasztott állományra kétszer kattintva lefuttatjuk a következő kódrészletet, mely elindítja a programot:
string file = fileList.SelectedItem.ToString();
FileInfo fi = new FileInfo(dirList.Path + "\\" + file);
ProcessStartInfo pi = new ProcessStartInfo();
pi.FileName = fi.FullName;
...
Process.Start(pi);
Amennyiben valamilyen oknál fogva az állomány nem indítható el, és nem nézhető meg NotePad-dal sem, akkor egy Win32Exception kivétel generálódik.

Visual Basic stílusú kontrolok cikksorozat