Charger une image dans une variable [Résolu]

Messages postés
141
Date d'inscription
mardi 18 mars 2003
Statut
Membre
Dernière intervention
3 octobre 2010
- - Dernière réponse : NHenry
Messages postés
14566
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 octobre 2019
- 3 oct. 2010 à 13:33
Bonjour à tous

Voici mon petit soucis
J'ai une dizaine de contrôle PictureBox que je vais appeler Pict1, Pict2...
Lorsque je fais un clic droit sur ce PictureBox, un menu contextuel s'ouvre.
A la suite des choix dans les différents menus, j'insère une image enregistrée dans My.Resources

Pour récupérer le nom du PictureBox concerné, j'ai donc créé une variable
Dim MonImage as PictureBox
Et au moment où je fais un clic droit, je récupère le PictureBox concerné

MonImage = Ctype(sender,picturebox)

Ce que je cherche à faire ensuite c'est à attribuer une image à ma variable

MonImage.Image = My.resources.Image1 (par exemple)

et ensuite à redonner au PictureBox de départ l'image contenu dans la variable MonImage

Mais là, je bloque, je me retrouve systématiquement avec un message d'erreur
J'ai essayer avec System.Drawing.Image ou avec FromBitmap, mais rien n'y fait

J'ai trouvé une solution de contournement en récupérant le nom de la variable au départ
Dim MonNom as string = MonImage.Name
Puis avec une instruction SelectCase, mais je pense qu'il y a une méthode plus simple.

Pouvez-vous m'aider ?

Un grand merci par avance

PhilouVB
Afficher la suite 

3 réponses

Meilleure réponse
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
3
Merci
Salut,
essayes de déclarer une variable Image.
Voici un code qui au double-clique
attribue au PictureBox2 l'image
du PictureBox1 cliqué avec le bouton droit :
    Private Sub PictureBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
        If e.Button = Windows.Forms.MouseButtons.Right Then
            Dim mii As Image = sender.image
            PictureBox2.Image = mii
        End If
    End Sub

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Commenter la réponse de raffika
Messages postés
14566
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
17 octobre 2019
136
3
Merci
Bonjour,

Raffika, il y a un gros problème dans ton code, tu n'as pas activer Option Strict :

    Private Sub PictureBox1_MouseDown(ByVal sender As System.Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles PictureBox1.MouseDown
        If e.Button = Windows.Forms.MouseButtons.Right Then
            Dim mii As Image = DirectCast(sender,PictureBox).image
            PictureBox2.Image = mii
        End If
    End Sub


Sinon, si tu ne veut onserver que l'image, utilises le type System.Drawing.Image.

"Mais là, je bloque, je me retrouve systématiquement avec un message d'erreur "
Quel message d'erreur ?

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources 197 internautes nous ont dit merci ce mois-ci

Commenter la réponse de NHenry
Messages postés
269
Date d'inscription
dimanche 31 mai 2009
Statut
Membre
Dernière intervention
12 mars 2011
0
Merci
ps : non au clique droit
Commenter la réponse de raffika