C# - ListBox vs. ListView

Alexander12

Erfahrenes Mitglied
Hi.

Ich habe eine kleines Problem mit nem ListView:
Ich arbeite ja dem FileBrowser und da habe Ich im Moment ne ListBox genommen, in welche Ich die Files einlese, hier die Methode:

Code:
void ReadFiles()
{
	// This Method gets the files from the Folders.
	string[] files = Directory.GetFiles(@"C:\\");
	foreach(string file in files)
	{
		 if ((File.GetAttributes(file) & FileAttributes.Hidden) == FileAttributes.Hidden) 
      	         {
			// What happens with the hidden files?
	         }
		 else
		 {
		        this.LstFiles.Items.Add(file);
		 }
	}
}

So, da muss Ich nur noch die versteckten Files irgendwo hin tun.
So, nun habe Ich nen EventHandler LstFilesDoubleClick, also beim Doppelklick, auf einen Item:

Code:
void LstFilesDoubleClick(object sender, System.EventArgs e)
{
	this.TxtDatei.Text = this.LstFiles.Text;
	string ext = Path.GetExtension(TxtDatei.Text);
	MessageBox.Show(ext);
}

So, bei der ListBox funktioniert das, bei dem ListView aber nicht, da zeigt er mir ne leere MessageBox.. Mir wäre aber ne ListView lieber, weil da könnt Ich die Files mit Icons versehen.. Hat jemand ne Idee?


MfG Alexander12

// Edit: Auch Kritik etc. zum SC könnt Ihr abgeben. ;-)
 
Zuletzt bearbeitet:
Bezüglich ListView solltest dir einmal die ListViewItems ansehen. Ausserdem besitzt die ListView eine Collection Items. Darüber kannst du eben auf die einzelnen ListViewItems zurückgreifen, die dann wiederum die gewünschten Informationen enthalten.

Dann solltest du deine Methode ReadFiles noch ein wenig rekursiv gestalten, da beispielsweise Unterverzeichnisse nicht eingelesen werden. UND, auch noch ganz wichtig, solltest dir eventuell einen Mechanismus ausdenken, dass nicht alle Unterverzeichnisse der gesamten Platte auf einmal eingelesen werden, da dies unter Umständen sehr lange dauern kann.
 
Hi.

Hm.. Mit der ListView komm Ich irgendwie nicht so zurecht - Gibt es eine Möglichkeit den ListBoxItems auch´n Icon zu verpassen?


MfG Alexander12
 
Gibt es, du turnst dich doch sonst immer auf CodeProject aus. Da gibt es jede Menge Beispiele für OwnerDraw Controls.
Bloß die Einstellung finde ich erlich gesagt misserable. Hab mal 5 mins draufgeschaut, komm damit nicht zurecht, also lass ich's lieber und mach mir's halt unnötig schwer.
Wie dir vielleicht schon aufgefallen ist, hat ein FileBrowser verschiedene Ansichten (Details, Liste, Große Symbole,...) wie bitte willst du das mit einer ListBox realisieren? Schwerer und umständlich gehts ja nun wirklich nicht.
Schau dir den ListView RICHTIG an UND dazu auch die Beispiele. Also ich wüsste nicht wirklich wo das Problem liegt. Es geht nun mal nicht immer, dass einfach alle von allein funktioniert und mir kann keiner sagen, dass es nirgends Beispiele und/oder Tutorials für ListViews gibt, an denen man sich herleiten kann, wie man damit arbeitet!
 
Du sollst dir nicht ein komplettes Projekt anschauen, sondern dir selbst gedanken darüber machen, was du vorhast.
Öffne den Explorer, dann hast du ein Beispiel für einen FileBrowser
 
Und schau dir die einzelnen Methoden und Properties in der MSDN an. Da gibts für jeden Schmarrn Beispiele und Beschreibungstexte warum etwas so ist wie es ist.

Dir muss man echt immer alles nachtragen. Wir alle sind doch nicht deine Mutter, Junge.
 
Zurück