Ciao a tutti,
ho un piccolo problema con una proprietà di un controllo personalizzato che ho creato.
Questo controllo serve a mostrare un'immagine prendendola da un percorso esterno, specificato nel parametro "Image_Address".
Il tutto funziona correttamente ma c'è una cosa che non riesco a fare:
a design io imposto il percorso di Image_address in modo "fisso". In realtà questo percorso deve essere dinamico in funzione della lingua selezionata.
Per farlo ho creato quindi i file di risorse con il riferimento al percorso dell'immagine in italiano e quello in inglese.
Sull'handlecreated del form vado a scrivere la proprietà "Image_Address" del controllo = al riferimento nel file di risorse. Tutto funziona correttamente.
Il problema è che io vorrei fare in modo di associare alla proprietà "Image_address" un testo "localizzato" in modo da non dover inizializzare tutte le immagini... insomma vorrei fare in modo di avere in "Image_address" un testo localizzabile o al limite il riferimento alla stringa nelle risorse dove è contenuto il percorso..
Sapete se è possibile fare qualcosa del genere?
Di seguito riporto il codice del controllo:
Mentre questo è il codice del form che usa il controllo:codice:Imports System.Windows.Forms Imports System.Drawing Public Class Ext_PictureBox Inherits PictureBox Private _Image_Address As String Public Property Image_Address() As String Get Return _Image_Address End Get Set(ByVal stringa As String) _Image_Address = stringa End Set End Property Private Sub Mybase_HandleCreated(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.HandleCreated If Me.Site IsNot Nothing AndAlso Me.Site.DesignMode = True Then 'Design code here Else 'Runtime code here Dim mybitmap As Bitmap Dim address As String address = Get_App_Path() & "\" & _Image_Address mybitmap = New Bitmap(address) Me.Image = mybitmap End If End Sub Private Function Get_App_Path() As String Dim path = System.IO.Path.GetDirectoryName( _ System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase) If path.StartsWith("\Flashdisk") Then Return path Else Return path.Remove(0, 6) End If End Function End Class
La risorsa F001_Sez_Filatoio contiene la stringa con il riferimento al percorso dell'immagine in italiano o in inglese.codice:Public Class F001_Principale Private Sub F001_Principale_HC(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.HandleCreated Ext_PictureBox1.Image_Address = My.Resources.Immagini.F001_Sez_Filatoio End Sub End Class

Rispondi quotando