hi leute, ich bin nicht der erste sicherlich, der diese frage stellt aber in google oder hier findet man nicht die lösung dazu, oder ich zumindest nicht.
wie kann man von Ordnern das Icon dazu bekommen? (also wie es im explorer angezeigt wird).
ich hab schon einiges ausprobiert:
Icon ic = System.Drawing.Icon.ExtractAssociatedIcon(@"C:\WINDOWS");
oder das "umständliche" über den SHGetFileInfo Aufruf.
Leider funktionieren alle diese Varianten nur bei Dateien und nicht bei Ordner.
nebenbei hab ich auch noch eine zweite blöde frage, beim ListView steuerelemnt kann man ja eine kleine oder große imagelist hinzufügen. wenn man jetzt eine kleine imagelist hat und ansicht auf detail, dann werden die icons schön angezeigt. will man aber jetzt "umschalten" auf keine Icons, kann ich das irgendwie nicht. die imagelist einfach auf null setzen geht zwar, aber lässt dann noch immer platz für bilder. kann ich ihm das irgendwie abgewöhnen?
System.CrashWithStop(0x0000000A);
Hallo seeker,
sollten die Ordner KEIN Standard-Icon haben, befindet sich im Ordner eine versteckte Datei namens desktop.ini. Dort steht der Pfad zum Icon drin.
mfg.
markus111
Hallo,
sowas erreicht man über die Shell API von Windows. Du brauchst an sich nur die Methode SHGetFileInfo. Diese rufst du mit den Pfad auf und den Parameter SHGFI_ICON. Dann bekommst du ein Handle auf ein Icon zurück und dieses kannst du dann wiederum mit Icon.FromHandle abrufen.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)
hi, danke für eure antworten.
ich hab es jetzt geschafft, mir ist nicht aufgefallen dass es doch auch mit der SHFILEINFO methode funktioniert. war gestern schon etwas spät 😉
habt ihr auch eine idee zu meinem zweiten problem? dass wenn es einmal eine imagelist in listview gegeben hat er immer den platz lässt für bilder, auch wenn diese leer sind?
System.CrashWithStop(0x0000000A);
habt ihr auch eine idee zu meinem zweiten problem? dass wenn es einmal eine imagelist in listview gegeben hat er immer den platz lässt für bilder, auch wenn diese leer sind?
Das ist normal. Was erwartest du denn genau?
> Codejunky <
naja ich würde gern diesen rand für die bilder weghaben. wenn ich nie eine imagelist dem listview zuweise, dann lässt er auch keinen rand. wenn ich einmal bilder angezeigt habe und dann beide imagelists (also klein und groß) auf null setze, lässt er noch immer den rand.
soll ich vielleicht das control neu erstellen?
System.CrashWithStop(0x0000000A);
Wenn du in einem bestimmten Fall überhaupt keine Icons willst, dann nimm doch aus der View-Enumeration einen anderen Wert?
mit freundlichen Grüßen,
Tomot
Projekte: www.gesellschaftsspieler-gesucht.de
also bei den verschiedenen view-eigenschaften hab ich keine veränderung festgestellt. er hat immer platz für bilder gelassen.
System.CrashWithStop(0x0000000A);
Wäre View.Details was für dich?
mit freundlichen Grüßen,
Tomot
Projekte: www.gesellschaftsspieler-gesucht.de
genau das verwende ich ja gerade. wenn dort aber einmal eben die imagelists drinnen sind, bekommt man sie nicht mehr raus 😉
System.CrashWithStop(0x0000000A);
genau das verwende ich ja gerade. wenn dort aber einmal eben die imagelists drinnen sind, bekommt man sie nicht mehr raus 😉
ListView.Small/LargeImageList = null;
?
> Codejunky <
ich hab ja oben bereits geschrieben: wenn ich einmal bilder angezeigt habe und dann beide imagelists (also klein und groß) auf null setze, lässt er noch immer den rand.
System.CrashWithStop(0x0000000A);
Probier es mal über den Win32 Weg. Erst ein LVM_SETIMAGELIST mit einem IntPtr.Zero als ImageList und anschließend ein LVM_ARRANGE. Vielleicht hilft das ja.
"Jedes Ding hat drei Seiten, eine positive, eine negative und eine komische." (Karl Valentin)