Charger une image dans une variable

Résolu
cs_PHILOUVB Messages postés 141 Date d'inscription mardi 18 mars 2003 Statut Membre Dernière intervention 3 octobre 2010 - 3 oct. 2010 à 10:50
NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 - 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

3 réponses

raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
3 oct. 2010 à 12:47
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
3
NHenry Messages postés 15123 Date d'inscription vendredi 14 mars 2003 Statut Modérateur Dernière intervention 20 mai 2024 159
3 oct. 2010 à 13:33
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 ?

3
raffika Messages postés 269 Date d'inscription dimanche 31 mai 2009 Statut Membre Dernière intervention 12 mars 2011
3 oct. 2010 à 12:49
ps : non au clique droit
0
Rejoignez-nous