Alimenter une picturebox par un openfiledialog

Résolu
QuiEtesVous - 18 sept. 2012 à 16:24
 QuiEtesVous - 18 sept. 2012 à 22:54
Bonjour,
Je débute en développement C# et je voulais tenter de me faire un petit outil de gestion de bibliothèque histoire de me faire la main.
Donc, sans entrer dans les détails, j'ai une forme pour renseigner les bouquins et, dans cette forme, une picturebox qui s'appelle pic_couv, ainsi qu'un bouton btn_import pour ouvrir l'openfiledialog.

Le code de mon bouton se présente comme ça :
private void btn_import_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "JPEG|*.jpg";
                if (dialog.ShowDialog() == DialogResult.OK)
                {

                    PictureBox pic_couv = new PictureBox();
                    Image image = Image.FromFile(dialog.FileName);
                    pic_couv.Image = image;
                    pic_couv.Dock = DockStyle.Fill;
                    //quoi mettre ici ?
                }
        }

J'ai donc un souci au niveau de ma ligne de commentaire : je ne sais pas quoi mettre pour afficher le contenu de ma picturebox.
En cherchant à droite et à gauche, je suis tombé sur un exemple qui, si je l'imite, donne
Controls.Add(pic_couv);

Si je tente ça, mon image apparaît bien mais pas dans ma picturebox ! Elle remplace l'image de fond de ma forme globale. J'en déduis donc que ce n'est pas ce qu'il faut que j'utilise.
Donc si quelqu'un pouvait éclairer ma lanterne, je ne saurais trop l'en remercier.
A voir également:

2 réponses

cs_L0ci Messages postés 224 Date d'inscription vendredi 26 novembre 2010 Statut Membre Dernière intervention 11 juin 2013 7
18 sept. 2012 à 16:37
Bonjour,

Je pense que c'est à cause du "pic_couv.Dock = DockStyle.Fill;" qui doit mettre ton control à la taille de ta fenêtre. En définissant une taille / position avant le "Controls.Add(pic_couv);" tu devrais pouvoir régler le pb.

Sinon tu peux aussi créer ta pictureBox dans ton designer pour la mettre la ou tu veux, et simplement utiliser ce bout du code:
private void btn_import_Click(object sender, EventArgs e)
        {
            OpenFileDialog dialog = new OpenFileDialog();
            dialog.Filter = "JPEG|*.jpg";
                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    Image image = Image.FromFile(dialog.FileName);
                    pic_couv.Image = image;
                }
        }
1
Merci beaucoup !
Effectivement, en instanciant ma picturebox en dehors de ma méthode, mon image apparait bien dedans.
Et pour adapter à la bonne taille, il m'a suffi de passer la propriété d'affichage de l'image à StretchImage.
0
Rejoignez-nous