none
affichage des image avec PictureBox RRS feed

  • Question

  • Bonjour,
    Je veux afficher plusieurs images dans une PictureBox, j'ai pensé à insérer ces images dans un objet Image puis insérer Image dans PictureBox mais je n'arrive à afficher qu'une seule image, pour mieux comprendre voici la partie de code que j'ai écrite : 
    foreach (string file in Directory.GetFiles(Dossier_origine.Text))
                    {
                        Image newImage = Image.FromFile(file);
                        Graphics graphics = Graphics.FromImage(newImage);
                        graphics = this.pictureBox1.CreateGraphics();
                        graphics.DrawImage(newImage, new PointF(0.0F, 0.0F));
                        graphics.Dispose();
                    }

    Merci d'avance pour votre aide.
    mercredi 29 juillet 2009 13:56

Réponses

  • Dans ton code la variable graphics est utilisé pour l'image et pour la picturebox. Par ailleurs tu dois te décaler au moins de gauche à droite pour afficher les images sur une ligne.

    Par exemple avec un repertoire image à la racine , le code suivant devrait fonctionner :

    int x = 0;
    
    using (Graphics graphics = this.pictureBox1.CreateGraphics())
    {
      foreach (string file in Directory.GetFiles(Path.Combine(Application.StartupPath, "image")))
      {
        Image newImage = Image.FromFile(file);
        graphics.DrawImage(newImage, new Point(x, 0));
        x += newImage.Width;
      }
    }
    • Proposé comme réponse nikhoModerator jeudi 30 juillet 2009 15:44
    • Marqué comme réponse Audrey PETIT vendredi 31 juillet 2009 13:13
    jeudi 30 juillet 2009 15:03
    Modérateur

Toutes les réponses

  • Dans ton code la variable graphics est utilisé pour l'image et pour la picturebox. Par ailleurs tu dois te décaler au moins de gauche à droite pour afficher les images sur une ligne.

    Par exemple avec un repertoire image à la racine , le code suivant devrait fonctionner :

    int x = 0;
    
    using (Graphics graphics = this.pictureBox1.CreateGraphics())
    {
      foreach (string file in Directory.GetFiles(Path.Combine(Application.StartupPath, "image")))
      {
        Image newImage = Image.FromFile(file);
        graphics.DrawImage(newImage, new Point(x, 0));
        x += newImage.Width;
      }
    }
    • Proposé comme réponse nikhoModerator jeudi 30 juillet 2009 15:44
    • Marqué comme réponse Audrey PETIT vendredi 31 juillet 2009 13:13
    jeudi 30 juillet 2009 15:03
    Modérateur
  • Merci pour ta réponse, enfin je suis arrivée à regler ce problème !! 

    J'ai une autre question, j'ai mis dans les propriétés de TabControl et PictureBox AutoScroll à True pour pouvoir afficher le scrollBar quand j'ai beaucoup d'images et pourtant il ne s'affiche pas, je sais pas qu'est ce que je dois modifier pour régler ce problème ?
    [dans mon IHM j'ai un TabControl, et dans ce TabControl j'ai un PictureBox]

    Merci encore une fois.

    jeudi 30 juillet 2009 15:40
  • Afin de faciliter la lecture, mieux vaut faire un nouveau post si tu as une nouvelle question.

    Nénamoins je ne pense pas que le picturepox possède la proriété autoscroll.
    Il faut que tu ajustes la taille de ton picturebox et si celle ci dépasse la taille de ton tabcontrol, la scrollbar apparait.

    Par contre pour faire persister les images, il serait bien plus préférable d'utiliser l'event OnPaint
    jeudi 30 juillet 2009 15:50
    Modérateur