Comment incorporer en pictureBox une ressource issu de la liste des ressources ? [Résolu]

ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 23 déc. 2011 à 12:15 - Dernière réponse :  Utilisateur anonyme
- 23 déc. 2011 à 21:37
Bonjour,

Je voudrais incorposer une ressource dans une picturebox, ressource issue de la liste des ressources, mais je n'y arrive pas, ça ne marche pas, voici mon code :


' ressources img1 + img2 (bmp)

Dim r As System.Resources.ResourceSet = My.Resources.ResourceManager.GetResourceSet(System.Globalization.CultureInfo.InvariantCulture, True, False)
  Dim dicos As IDictionaryEnumerator = r.GetEnumerator()

    While dicos.MoveNext
      If Mid(dicos.Key.ToString(), 1, 3) = "img2" Then
        PictureBox1.Image = My.Resources.dicos.Key.tostring ' REFUS
        PictureBox1.Image My.Resources dicos.Key.ToString ' REFUS
        PictureBox1.Image = My.Resources Is dicos.Key.ToString ' REFUS
        Exit While
      End If
    End While


Merci de bien vouloir m'indiquer la bonne syntaxe pour ce que je veux faire ?

Cordialement, Joe.
Afficher la suite 

5 réponses

Répondre au sujet
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 23 déc. 2011 à 15:13
+3
Utile
ou en court, hein ^^

PictureBox1.Image = My.Resources.ResourceManager.GetObject(ListBox1.Text)


Je relis mon premier post...

je ne voit pas tant de 'ce qu'il ne faut pas faire'

un rappel de base, virer Microsoft.VisualBasic

et des explications sur 'pourquoi ca ne fonctionne pas'

enfin, des questions pour tenter de mieux comprendre ton projet...

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Cette réponse vous a-t-elle aidé ?  
Commenter la réponse de Renfield
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 23 déc. 2011 à 14:44
0
Utile
My.Resources = dicos.Key.ToString
et
My.Resources Is dicos.Key.ToString

renvoient tous deux un Boolean
normal que ton affectation plante

My.Resources.dicos.Key.tostring

renvoie une chaine de caractères
pas une image, encore une fois

soit tu stockes en ressource une image, auquel cas il te suffit de la charger

soit tu stockes une image et a voir selon le format a en avoir un Stream, par exemple.

enfin, je dirai que ta boucle est étrange...

Mid est du VB6 !!!!!

pense a supprimer la reference Microsoft.VisualBasic de ton projet

tu parcoures chaque item de ta collection, comparant toi même la clé...

souhaites tu reelement ne tester que les trois premiers caractères de chaque clé ?
ou cherches tu l'element dont la clé est img2 ??


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
ehjoe 728 Messages postés samedi 4 avril 2009Date d'inscription 30 mars 2014 Dernière intervention - 23 déc. 2011 à 14:59
0
Utile
Bonjour,

Tu m'expliques beaucoup ce que je ne dois pas faire, mais peu ce que je dois faire

J'ai désormais le bon code :

    While dicos.MoveNext
      If dicos.Key.ToString() = ListBox1.Items(ListBox1.SelectedIndex) Then
        Dim obj As Object = r.GetObject(dicos.Key)
        PictureBox1.Image = obj
        Exit While
      End If
    End While


C'est donc résolu (PAR MOI)

Cordialement, Joe.
Commenter la réponse de ehjoe
Renfield 17307 Messages postés mercredi 2 janvier 2002Date d'inscription 18 janvier 2017 Dernière intervention - 23 déc. 2011 à 15:10
0
Utile
faire ou ne pas faire...

j'ai posé des questions pour tenter de te répondre plus finement.
on voit donc que tu stockes une image.

pourquoi alors cette boucle While ?

pourquoi ne pas faire :

        With My.Resources.ResourceManager()
            PictureBox1.Image = .GetObject(ListBox1.Text)
        End With


un code qui fonctionne c'est bien, quand on le comprend, on y gagne, non ?


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Utilisateur anonyme - 23 déc. 2011 à 21:37
0
Utile
Bonsoir,

Si Option Strict est sur On, tu dois alors 'caster' l'objet renvoyé par GetObject en type Image. Pour cela, utilise DirectCast, CType ou TryCast.

Bonne nuit.
Commenter la réponse de Utilisateur anonyme

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.