IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

[vb.net]Utilisation de ressource


Sujet :

VB.NET

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 40
    Points
    40
    Par défaut [vb.net]Utilisation de ressource
    Bonjour,

    Je souhaite une manière d'accéder a mes ressources de la dll. En effet, dans cette dll j'ai deux contrôle utilisateur : pictureBox et Button . Pour récupérer ces ressources j'utilise actuellement une énumération comme ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
     
    Public Enum EnumImage
        ALERTS = 0
        ALIGNTABLECELLMIDDLECENTER = 1
        ALIGNTABLECELLMIDDLELEFTJUST = 2
        ALIGNTABLECELLMIDDLERIGHT = 3
        APPWINDOW = 4
        ATTACHMENT = 5
        AUDIO = 6
        BARCODE = 7
        BOLD = 8
        BOOK_ADDRES = 9
        BREAKPOINT = 10
        BRINGFORWARD = 11
        BRINGTOFRONT = 12
        CALCULATOR = 13
        CALENDAR_SCHEDULE = 14
        CHECKBOX = 15
        CHECKGRAMMAR = 16
        CHOOSECOLOR = 17
        COLOR_FONT = 18
        COLOR_LINECOLOR = 19
        COMMENT = 20
        COPY = 21
        CUT = 22
        DELETE = 23
     
    end enum
     
    Public Enum EnumImageSize
        PETITE = 16 'Taille 16x16
        MOYENNE = 32 'Taille 32x32
        GRANDE = 48 'Taille 48x48
    End Enum
    J'utilise ensuite un select case pour récuperer la bonne ressource comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
     
    Public Function SelectedRessources(ByVal values As EnumImage) As System.Drawing.Bitmap
            Dim t
            t = 0
            Select Case values
                Case 0
                    t = My.Resources.ALERTS
                Case 1
                    t = My.Resources.ALIGNTABLECELLMIDDLECENTER
                Case 2
                    t = My.Resources.ALIGNTABLECELLMIDDLELEFTJUST
                Case 3
                    t = My.Resources.ALIGNTABLECELLMIDDLERIGHT
                Case 4
                    t = My.Resources.APPWINDOW
                Case 5
                    t = My.Resources.ATTACHMENT
                Case 6
                    t = My.Resources.AUDIO
                Case 7
                    t = My.Resources.BARCODE
                Case 8
                    t = My.Resources.BOLD
                Case 9
                    t = My.Resources.BOOK_ADDRESS
                Case 10
                    t = My.Resources.BREAKPOINT
                Case 11
                    t = My.Resources.BRINGFORWARD
                Case 12
                    t = My.Resources.BRINGTOFRONT
                Case 13
                    t = My.Resources.CALCULATOR
                Case 14
                    t = My.Resources.CALENDAR_SCHEDULE
                Case 15
                    t = My.Resources.CHECKBOX
                Case 16
                    t = My.Resources.CHECKGRAMMAR
                Case 17
                    t = My.Resources.CHOOSECOLOR
                Case 18
                    t = My.Resources.COLOR_FONT
                Case 19
                    t = My.Resources.COLOR_LINECOLOR
                Case 20
                    t = My.Resources.COMMENT
                Case 21
                    t = My.Resources.COPY
                Case 22
                    t = My.Resources.CUT
                Case 23
                    t = My.Resources.DELETE
    End Select
     
            Return t
        End Function
    Donc je veux récuperer ces ressources sans passer par ce select case car il s'agit en réalité des icônes en 16*16. Or je dois rajouter les mêmes icone en 32*32 et 48*48. De ce fait, cette méthode n'est pas optimal et je suis sur qu'il y a beaucoup plus rapide et simple.

    J'ai essayer ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     Me.Image = New Bitmap(Convert.ToString(My.Resources.Culture))
                Me.Image = New Bitmap(Convert.ToString((New Uri("Resources/PETITE/AUDIO.png", UriKind.Relative))))
    Mais ceci ne fonctionne pas. Avez vous une idée ?

    Cordialement

  2. #2
    Membre expérimenté
    Homme Profil pro
    Développeur .Net / Delphi
    Inscrit en
    Juillet 2002
    Messages
    738
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Développeur .Net / Delphi
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2002
    Messages : 738
    Points : 1 745
    Points
    1 745
    Par défaut
    Bonjour,
    Une idée de solution :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim myImage as Image
    myImage = CType(My.Resources.ResourceManager.GetObject("Nom_ressource"), Image)
    Tu stockes le nom de tes ressources dans une liste et a priori le tour est joué.
    Ca devrait répondre à ton besoin.

    eb.

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 40
    Points
    40
    Par défaut
    Désolé pour le retard.
    Tout d'abord merci ebastien pour ta réponse. J'ai chercher pendant un moment, et finalement j'ai incorporée les ressources mais j'ai encore une erreur lorsque je veux remplir les propriété de ma pictureBox : Un stream ne peut pas retourner un nul , voila ma fonction permettant de prendre une ressource:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
     
     Public Function SelectedRessources(ByVal values As EnumImage, ByVal size As EnumImageSize) As System.Drawing.Bitmap
            Dim t
            t = 0
            Dim ass As Assembly
            Dim typeSize As String = ""
            ass = Assembly.GetExecutingAssembly
     
            'On récupère les types
            Dim test As String
            test = Convert.ToString(values.GetType)
            Dim res As String
            res = Convert.ToString(size.GetType)
            Dim tu As String = "ALERTS"
            If values = vbNull And size = vbNull Then
            Else
                If size = 16 Then
                    t = Image.FromStream(ass.GetManifestResourceStream("Ent.Framework.WinForms.16_" & test & ".png"))
                ElseIf size = 32 Then
                    t = Image.FromStream(ass.GetManifestResourceStream("Ent.Framework.WinForms.32_" & test & ".png"))
                ElseIf size = 48 Then
                    t = Image.FromStream(ass.GetManifestResourceStream("Ent.Framework.WinForms.48_" & test & ".png"))
                End If
     
     
            End If
     
     
     
     
            Return t
        End Function
    J'ai toujours les même énumérations que précédemment mais je n'arrive pas a lever cette erreur et ce n'est pas faute d'avoir essayer ^^

    Merci

  4. #4
    Expert confirmé
    Inscrit en
    Avril 2008
    Messages
    2 564
    Détails du profil
    Informations personnelles :
    Âge : 64

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 564
    Points : 4 441
    Points
    4 441
    Par défaut
    bonjour kevin01330

    Dans la meme veine que ce qu'as suggere sebastien,mais sans utiliser de liste et plus expeditif...
    Exemple code avec des bitmap de VS(ou des icones si tu veux) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
     
    Public Class Form1
     
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Dim valEnum As EnumImage = EnumImage.Alerts
            Label1.Text = name
            PictureBox1.Image = SelectedRessources(valEnum)
     
        End Sub
     
        Public Function SelectedRessources(ByVal valEnum As EnumImage) As Bitmap
            Dim strName As String = [Enum].GetName(GetType(EnumImage), valEnum)
            Dim objResource As Object = My.Resources.ResourceManager.GetObject(strName)
     
            Dim bmp As Bitmap
            If TypeOf (objResource) Is Bitmap Then
                bmp = objResource
            Else
                bmp = Nothing
            End If
            Return bmp
        End Function
    End Class
     
    Public Enum EnumImage
        ActualSize = 0
        AddTable = 1
        AddToFavorites = 2
        Alerts = 3
    End Enum
    bon code....

  5. #5
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Avril 2013
    Messages
    57
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2013
    Messages : 57
    Points : 40
    Points
    40
    Par défaut
    Merci encore pour vos réponse MABROUKI et ebastien. J'ai pris note des solutions que vous me proposiez mais mon maitre de stage voulait que j'utilise la méthode que j'ai énoncer.

    Si ca intéresse quelqu'un la raison pour laquelle ceci ne marchait pas est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Dim test As String
            test = Convert.ToString(values.GetType)
    Il faut en mettre ceci a la place:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
            test = values.ToString
    cordialement,
    Kévin

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [VB.NET] [WinForms] Emdebed Ressource !
    Par maitrebn dans le forum Windows Forms
    Réponses: 2
    Dernier message: 13/07/2004, 11h46
  2. [.NET] Utiliser MSN Messenger ds une appli
    Par Thomas Lebrun dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 02/04/2004, 16h58
  3. Utilisation de ressources images
    Par bebeours dans le forum C++Builder
    Réponses: 2
    Dernier message: 20/09/2002, 14h33
  4. [BCB5] Utilisation des Ressources (.res)
    Par Vince78 dans le forum C++Builder
    Réponses: 2
    Dernier message: 04/04/2002, 16h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo