Embedded icon

Signaler
Messages postés
31
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
20 juillet 2005
-
Messages postés
31
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
20 juillet 2005
-
Bonjour,


je développe une palli dans laquelle j'ai ajouté une icone en "embedded resources"
(Add->ExistingItem->demoDirectory.ico)
J'ia bien mis la propriété Buil Actiion à "embedded reources" et je voudrais ajouter cette icon à une imageList par le code.


J'ai tapé ceci

Assembly assembly = System.Reflection.Assembly.GetExecutingAssembly();
System.Drawing.Icon ico = new System.Drawing.Icon(
assembly.GetManifestResourceStream(this.GetType (),"demoDirectory.ico"));
_imageList.Images.Add(ico);


et j'ai l'erreur suivante :


An unhandled exception of type 'System.ArgumentException' occurred in system.drawing.dll


Additional information: 'null' is not a valid value for 'stream'.


Cette erreur apparait au niveau de la construction de l'icon (la ligne avec new donc ...)


mon icon existe bien et je ne me suis pas trompé dans le nom ?
est ce que quelqu'un y comprend auelque chose ?


merci

4 réponses

Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
52
Je crois que tu dois introduire le nom du namespace "." le nom de l'image si mes souvenirs sont bons.
assembly.GetManifestResourceStream(this.GetType (),"MyNamespace.demoDirectory.ico"));

[Pub] http://www.csharpfr.com/auteurdetail.aspx?ID=13319 [\Pub]
C# forever
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
je confirme, c'est ce qu'il faut faire
Messages postés
495
Date d'inscription
dimanche 6 juillet 2003
Statut
Membre
Dernière intervention
9 novembre 2007
1
arf, dsl j'aurais du aussi preciser, si dans ton projet le namespace est A et que dans ton projet tu est en "Solution View" et que tu rajoute un dossier "res" par exemple, dans lequel tu met tes images, il te faudra tapper ceci :

assembly.GetManifestResourceStream(this.GetType (),"A.res.truc.ico"));
Messages postés
31
Date d'inscription
mardi 19 mars 2002
Statut
Membre
Dernière intervention
20 juillet 2005

oui effectivement, il faut rajouter le nom du namesapce.
mais le problème venant du fait que le namesapce n'avait pas le même nom pour mes icônes.
J'ai vu ce problème avec I LDASM sous visual.

sebseb42 a écrit :
assembly.GetManifestResourceStream(this.GetType (),"A.res.truc.ico"));

ceci n'est pas indispensable.
je suis venu à bout de mon problème de cette amnière :


string localNamespace =
this.GetType().Namespace;
System.Drawing.Bitmap bmp;
bmp =
new System.Drawing.Bitmap(

this.GetType().Assembly.GetManifestResourceStream(localNamespace + "icons.folder.png"));
imgList.Images.Add(bmp);



pour les ICO c'est la même chose avec ico à la place de bitmap

voila
merci à tous