e richiamarla direttamente nel programma compilato dal CodeDom tramite il codice :
Ovviamente si può ripetere questa linea di codice per ogni risorsa che si vuole richiamare nel programma generato.
Per diversi motivi ho poi cercato una soluzione alternativa a questo codice (che comunque funziona bene) ed ho utilizzato questa procedura alternativa (scrivo tutto qui in caso possa servire a qualcuno) :
1.Trasformare l'immagine in una stringa Base64 (una stringa piuttosto lunga,circa 50'000 caratteri per 40 Kb di immagine)
2.Nel programma che verrà generato inserire questa stringa in una textbox invisibile
3.Associare l'evento Me.BackgroundImage alla funzione che 'ritrasforma' la nostra stringa di 50'000 caratteri nell'immagine originale.
In questo modo ho evitato di richiamare il System.Reflection ed il relativo Imports , ed ho evitato di avere delle risorse collegate all'Assembly. E' una soluzione non certo professionale ma funziona.
Funziona solo per le immagini, ma forse con qualche modifica si può fare lo stesso con altre risorse , tipo da file binario generico a stringa e viceversa, ma non ne sono sicuro.
Qui il codice :
Codice sorgente - presumibilmente VB.NET |
'da immagine a stringa Public Shared Function ImageToBase64String(ByVal image As Image, _ ByVal imageFormat As ImageFormat) Using memStream As New MemoryStream image.Save(memStream, imageFormat) Dim result As String = Convert.ToBase64String(memStream.ToArray()) memStream.Close() Return result End Using End Function 'da stringa a immagine Public Shared Function ImageFromBase64String(ByVal base64 As String) Try Using memStream As New MemoryStream(Convert.FromBase64String(base64)) Dim result As Image = Image.FromStream(memStream) memStream.Close() Return result End Using Catch ex As Exception MsgBox("Error while loading image") End Try End Function 'convertire un'immagine contenuta nelle risorse in stringa ed associarla ad una textbox TextBox2.Text = ImageToBase64String(My.Resources.miaimmagine, ImageFormat.Jpeg) 'ritrasformare la stringa nella textbox nell'immagine originale e assegnarla ad una picturebox PictureBox1.Image = ImageFromBase64String(TextBox2.Text)
|
Grazie ancora per l'aiuto !!