Displaying an array of images in picturebox?

前端 未结 5 1051
北荒
北荒 2021-01-14 14:38

I\'m very new to visual C# I want to display an array of images in a picture box

Here\'s my code:

string[] list = Directory.GetFiles(@\"C:\\\\picture         


        
相关标签:
5条回答
  • 2021-01-14 15:25

    Use picturebox[index].Image = Image.FromFile(list[index]);

    0 讨论(0)
  • 2021-01-14 15:27

    //this code help you to work with picturebox in arraye

    public partial class Form_Begin : Form
        {
            PictureBox[] pictureBoxs = new PictureBox[50];
            public Form_Begin()
            {
                InitializeComponent();
                pictureBoxs[0] = pictureBox1;
                pictureBoxs[1] = pictureBox2;
                pictureBoxs[2] = pictureBox3;
                pictureBoxs[3] = pictureBox4;}
    
    
    
                List<PictureBox> pictureBoxes = new List<PictureBox>();
     private void buttonX1_Click(object sender, EventArgs e)
                {
                    for (int i = 0; i <2; i++)
                    {
                        pictureBoxs[i].Image =your_name_project.Properties.Resources.Image_1;                     // Load Image_1 from Resources on property of picturebox  
                    }
                    for (int i = 2; i < 4; i++)
                    {
                        pictureBoxs[i].Image =your_name_project.Properties.Resources.Image_2;                    // Load Image_12 from Resources on property of picturebox 
    
                    }
    
    0 讨论(0)
  • 2021-01-14 15:32

    Edit-1 : This answer has a scope limited to Win-Forms C#. You need certain assemblies added in your application before using this code.

    using System.IO;
    using System.Windows.Forms;
    

    Edit ended;

    Original Answer

    You have to draw all image to one image for displaying them in single picturebox

    That is bit complex you can use mutiple pictureboxes

    In following code they are created dynamically according to need:

        // For confirm visibility of all images set 
        this.AutoScroll = true;
    
        string[] list = Directory.GetFiles(@"C:\pictures", "*.jpg");
        PictureBox[] picturebox= new PictureBox[list.Length];
        int y = 0;
        for (int index = 0; index < picturebox.Length; index++)
        {
            this.Controls.Add(picturebox[index]);
            // Following three lines set the images(picture boxes) locations
            if(index % 3 == 0)
                y = y + 150; // 3 images per rows, first image will be at (20,150)
            picturebox[index].Location=new Point(index * 120 + 20, y);
    
            picturebox[index ].Size = new Size(100,120);
            picturebox[index].Image = Image.FromFile(list[index]);
        }
    
    0 讨论(0)
  • 2021-01-14 15:39
     private void picbutton_Click(object sender, EventArgs e)
        {
            OpenFileDialog open = new OpenFileDialog();
            PictureBox[] picture = new PictureBox[5];
            int x = 0;
            int y = 15;
            for (int index = length; index < picture.Length; index++)
            {
                    picture[index] = new PictureBox();
                    picture[index].Size = new Size(100, 50);
                    open.Title = "OPen Image";
                    open.Filter = "JPG Files (*.jpg)|*.jpg|JPEG Files (*.jpeg)|*.jpeg|PNG Files (*.png)|*.png|GIF Files (*.gif)|*.gif";
                    DialogResult result = open.ShowDialog();
                    if (result == DialogResult.OK)
                    {
                        picture[index].BackgroundImage = new Bitmap(open.FileName);
                        picture[index].SizeMode = PictureBoxSizeMode.AutoSize;
                        listBox1.Controls.Add(picture[index]);
                        if ((x % 3 == 0) && (index != 0))
                        {
                            y = y + 150; // 3 images per rows, first image will be at (20,150)
                            x = 0;
                        }
                        picture[index].Location = new Point(x * 210 + 20, y);
                        picture[index].Size = new Size(200, 150);
                        x++;
                }
            }
        }
    
    0 讨论(0)
  • 2021-01-14 15:43

    The answer provided throws an object reference exception. Otherwise thanks for the example!

    for (int index = 0; index < picturebox.Length; index++)
    {
         this.Controls.Add(picturebox[index]);
         // Following three lines set the images(picture boxes) locations
    

    should be

    for (int index = 0; index < picturebox.Length; index++)
    {
        picturebox[index] = new PictureBox();
        this.Controls.Add(picturebox[index]);
        // Following three lines set the images(picture boxes) locations
    
    0 讨论(0)
提交回复
热议问题