Utilizzare una icona incorporata nell'assembly corrente.

Se può essere d'aiuto a chi ancora non avesse affrontato l'argomento...

(N.B. recuperato dal web e leggermente modificato)

    Private Function GetIconFromExecutingAssembly(ByVal iconName As StringAs Icon
        
Dim oStream As System.IO.Stream
        
Dim oAssembly As System.Reflection.Assembly
        Dim 
sIcon As String
        Dim 
oBitmap As Bitmap

        
'open the executing assembly
        
oAssembly = System.Reflection.Assembly.LoadFrom(Application.ExecutablePath)

        sIcon = 
String.Format("{0}.{1}", oAssembly.GetName.Name, iconName)

        
'create stream for image (icon) in assembly
        
oStream = oAssembly.GetManifestResourceStream(sIcon)

        
'create new bitmap from stream
        
oBitmap = CType(Image.FromStream(oStream), Bitmap)

        
'create icon from bitmap
        
Return Icon.FromHandle(oBitmap.GetHicon)
    
End Function

powered by IMHO

Modificato il 07/01/2005

Su suggerimento di Enzo Colluto (vedi feedback) ecco un modo ancora più immediato:

Dim myIcon As Icon = New Icon(GetType(myForm), "MYICO.ICO")

Print | posted @ lunedì 3 gennaio 2005 20:47

Comments on this entry:

Gravatar # re: Utilizzare una icona incorporata nell'assembly corrente.
by Enzo Colluto at 03/01/2005 21:18

Io in genere faccio così:

dim myIcon as System.Drawing.Icon
dim IconName as String
...
myIcon=New System.Drawing.Icon(Me.GetType(), IconName)
Gravatar # re: Utilizzare una icona incorporata nell'assembly corrente.
by Mario Duzioni at 06/01/2005 01:39

Grazie Andrea! (Che fessacchiotto!)

Enzo, non ho mica ben capito il tuo codice... Sorry, domani con la mente un pò più lucida (si fa per dire) provo a rileggerlo (e magari a farlo girare...!!!)

Grazie a tutti e due!
Gravatar # re: Utilizzare una icona incorporata nell'assembly corrente.
by Mario Duzioni at 07/01/2005 14:03

Non senza qualche perplessità da parte del sottoscritto, ma funza alla grande!

Mi lascia molto perplesso che un parametro di tipo System.Type (scusa il gioco di parole!) possa specificare un Assembly, come invece descrive VS:
"Oggetto System.Type che specifica l'assembly in cui cercare la risorsa."

D'istinto mi verrebbe da pensare che tutt'al più, dato il tipo, pensi lui a recuperare il riferimento all'assemply che lo contiene.

Mah, mi sa che ne devo ancora mangiare parecchio di panetùn prima di capire certe cose...

Grazie ancora!
Gravatar # re: Utilizzare una icona incorporata nell'assembly corrente.
by Enzo Colluto at 07/01/2005 14:25

Concordo con il tuo istinto
Comments have been closed on this topic.