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:
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
Mentre questo è il codice del form che usa il controllo:
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
La risorsa F001_Sez_Filatoio contiene la stringa con il riferimento al percorso dell'immagine in italiano o in inglese.