TreeView
-
hallo,
ich möchte das der user meines programms ordner auswählen soll, dazu verwende ich TreeView.
frage: soll ich koplett alle ordner des computers sofort laden oder wenn ein ordner sichtbar ist (wenn man auf plus klickt) dann die unterordner laden?
-
Wenn möglich gleich den entsprechenden Dialog öffen, das ist für den Benutzer einfacher und intutiver, für dich weniger schreibaufwand und einfach zu warten und resultiert in einem kürzeren Quelltext.
http://msdn.microsoft.com/en-us/library/system.windows.forms.folderbrowserdialog.aspxghostboss schrieb:
frage: soll ich koplett alle ordner des computers sofort laden oder wenn ein ordner sichtbar ist (wenn man auf plus klickt) dann die unterordner laden?
Was passiert denn wenn zwei Ordner per speielle Links in sich selber zeigen? Was ist wenn die Festplate groß und langsam ist
...
natürlich Erst laden wenn benötigt (bzw. schon vorher nur alle Kinder ersten Grades laden - wenn es wahrscheinlich ist, dass der Benutzer viel herumsucht)
-
Rhombicosidodecahedron schrieb:
(bzw. schon vorher nur alle Kinder ersten Grades laden - wenn es wahrscheinlich ist, dass der Benutzer viel herumsucht)
Zweiten Grades, damit die [+] Aufklappsymbole korrekt erscheinen oder habe ich dich falsch verstanden?
-
Edit: TreeView hat doch kein VirtualMode
witte schrieb:
Rhombicosidodecahedron schrieb:
(bzw. schon vorher nur alle Kinder ersten Grades laden - wenn es wahrscheinlich ist, dass der Benutzer viel herumsucht)
Zweiten Grades, damit die [+] Aufklappsymbole korrekt erscheinen oder habe ich dich falsch verstanden?
Jein. Den Aspekt den du anführst habe ich fälschlicher Weise nicht in Betracht gezogen.
Jedoch habe ich gemeint, dass wenn jetzt z.B.: "C:\" ausgewählt ist alle direkten Unterordner ("Programme" "Users" "Windows") (vlt. über treads) geladen werden, damit man nicht immer Warten muss, wenn er ein Knoten ausgewählt hat, sondern diese direkt angezeigt werden.
-
danke für die antworten.
Rhombicosidodecahedron schrieb:
Wenn möglich gleich den entsprechenden Dialog öffen, das ist für den Benutzer einfacher und intutiver, für dich weniger schreibaufwand und einfach zu warten und resultiert in einem kürzeren Quelltext.
ich schreib das selber weil ich das lernen möchte und wissen will wie das funktioniert, ich könnte mir auch gleich ein programm suche statt selber schreiben ;).
hab noch ne frage,
wenn der user ein ordner ausgewählt hat dann werden alle dateien des ordners in einer ListBox angezeigt, also auch versteckte, schreibgeschützte usw.
das ist aber nicht sehr gut da mein programm dateien umbennenen soll.mit FileInfo::Attributes kann man die attribute der datei herausbekommen, also hidden, readOnly, system usw. und mit File::Extension kann man die datei-erweiterungen herausbekommen (.txt, .mp3 usw.).
so, wie mach ich das jetzt. soll ich eine liste der datei-erweiterungen erstellen die in der ListBox nicht angezeigt werden, oder bei attributen nur die anzeigen die kein hidden, readOnly und system haben?
-
backlists sind eher schlecht - leiber Whitelists: (bzw. vom Benutzer einstellen lassen)
Außerdem würde ich zunächst bestimmte Ordner direkt (im /vorm Treeview) ausblenden (C:\Windows\*) dann die Endung abgleichen und dann erst das FileAtribute berücksichtigen.
-
wie kriege ich den die liste von den endungen? vom system/c++/computer/? oder soll der user selber erstellen zb. in die TextBox eingeben .mp3, .txt, dann kann er ja zb. .sys eingeben, ist nicht so gut.