Add Number of Picture Box Dynamically with different Images

Dynamic Image To Dynamically added Picture Box

In this article we can add the multiple images to picture box at run time and also different image to different picture box as we want. From file browse dialog box we select the folder if that folder contains the images like jpeg file that all .jpeg file name add it to Context Menus and click on the image name the particular image is displayed to respective Picture Box.

 

namespace selectSubMenu

{

    partial class Form1

    {

        /// <summary>

        /// Required designer variable.

        /// </summary>

        private System.ComponentModel.IContainer components = null;

 

        /// <summary>

        /// Clean up any resources being used.

        /// </summary>

        /// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>

        protected override void Dispose(bool disposing)

        {

            if (disposing && (components != null))

            {

                components.Dispose();

            }

            base.Dispose(disposing);

        }

 

        #region Windows Form Designer generated code

 

        /// <summary>

        /// Required method for Designer support - do not modify

        /// the contents of this method with the code editor.

        /// </summary>

        private void InitializeComponent()

        {

            this.components = new System.ComponentModel.Container();

            this.contextMenuStrip1 = new System.Windows.Forms.ContextMenuStrip(this.components);

            this.folderBrowserDialog1 = new System.Windows.Forms.FolderBrowserDialog();

            this.txtPathName = new System.Windows.Forms.TextBox();

            this.btnGenPictBox = new System.Windows.Forms.Button();

            this.txtPictValue = new System.Windows.Forms.TextBox();

            this.lblValue = new System.Windows.Forms.Label();

            this.btnReset = new System.Windows.Forms.Button();

            this.lblPictName = new System.Windows.Forms.Label();

            this.SuspendLayout();

            //

            // contextMenuStrip1

            //

            this.contextMenuStrip1.Name = "contextMenuStrip1";

            this.contextMenuStrip1.Size = new System.Drawing.Size(61, 4);

            //

            // txtPathName

            //

            this.txtPathName.Location = new System.Drawing.Point(597, 6);

            this.txtPathName.Name = "txtPathName";

            this.txtPathName.Size = new System.Drawing.Size(166, 20);

            this.txtPathName.TabIndex = 12;

            //

            // btnGenPictBox

            //

            this.btnGenPictBox.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, ((byte)(0)));

            this.btnGenPictBox.Location = new System.Drawing.Point(291, 6);

            this.btnGenPictBox.Name = "btnGenPictBox";

            this.btnGenPictBox.Size = new System.Drawing.Size(171, 23);

            this.btnGenPictBox.TabIndex = 13;

            this.btnGenPictBox.Text = "Generate Picture Box...";

            this.btnGenPictBox.UseVisualStyleBackColor = true;

            this.btnGenPictBox.Click += new System.EventHandler(this.btnGenPictBox_Click);

            //

            // txtPictValue

            //

            this.txtPictValue.Location = new System.Drawing.Point(158, 9);

            this.txtPictValue.Name = "txtPictValue";

            this.txtPictValue.Size = new System.Drawing.Size(127, 20);

            this.txtPictValue.TabIndex = 14;

            //

            // lblValue

            //

            this.lblValue.AutoSize = true;

            this.lblValue.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, ((System.Drawing.FontStyle)((System.Drawing.FontStyle.Bold | System.Drawing.FontStyle.Underline))), System.Drawing.GraphicsUnit.Point, ((byte)(0)));

            this.lblValue.ForeColor = System.Drawing.Color.Tomato;

            this.lblValue.Location = new System.Drawing.Point(2, 8);

            this.lblValue.Name = "lblValue";

            this.lblValue.Size = new System.Drawing.Size(155, 26);

            this.lblValue.TabIndex = 15;

            this.lblValue.Text = "Enter Number to Generate\r\nPicture Box";

            //

            // btnReset

            //

            this.btnReset.Location = new System.Drawing.Point(480, 4);

            this.btnReset.Name = "btnReset";

            this.btnReset.Size = new System.Drawing.Size(75, 23);

            this.btnReset.TabIndex = 16;

            this.btnReset.Text = "Reset";

            this.btnReset.UseVisualStyleBackColor = true;

            this.btnReset.Click += new System.EventHandler(this.btnReset_Click);

            //

            // lblPictName

            //

            this.lblPictName.AutoSize = true;

            this.lblPictName.Location = new System.Drawing.Point(556, 9);

            this.lblPictName.Name = "lblPictName";

            this.lblPictName.Size = new System.Drawing.Size(0, 13);

            this.lblPictName.TabIndex = 17;

            //

            // Form1

            //

            this.AutoScaleDimensions = new System.Drawing.SizeF(6F, 13F);

            this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;

            this.AutoScroll = true;

            this.ClientSize = new System.Drawing.Size(775, 416);

            this.Controls.Add(this.lblPictName);

            this.Controls.Add(this.btnReset);

            this.Controls.Add(this.lblValue);

            this.Controls.Add(this.txtPictValue);

            this.Controls.Add(this.btnGenPictBox);

            this.Controls.Add(this.txtPathName);

            this.Name = "Form1";

            this.Text = "Form1";

            this.Load += new System.EventHandler(this.Form1_Load);

            this.ResumeLayout(false);

            this.PerformLayout();

 

        }

 

        #endregion

 

        private System.Windows.Forms.ContextMenuStrip contextMenuStrip1;

        private System.Windows.Forms.FolderBrowserDialog folderBrowserDialog1;

        private System.Windows.Forms.TextBox txtPathName;

        private System.Windows.Forms.Button btnGenPictBox;

        private System.Windows.Forms.TextBox txtPictValue;

        private System.Windows.Forms.Label lblValue;

        private System.Windows.Forms.Button btnReset;

        private System.Windows.Forms.Label lblPictName;

    }

}

 

 

 

using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Text;

using System.Windows.Forms;

using System.IO;

 

namespace selectSubMenu

{

    public partial class Form1 : Form

    {

        #region Form Constroctor

        public Form1()

        {

            InitializeComponent();

            this.AutoSizeMode = AutoSizeMode.GrowAndShrink;

            this.AutoSize = true;

            this.Padding = new Padding(0, 0, 20, 20);

            this.StartPosition = FormStartPosition.CenterScreen;

        }

#endregion

        #region Form Load

        private void Form1_Load(object sender, EventArgs e)

        {

            btnReset.Visible = false;

            lblPictName.Visible = false;

            txtPictValue.Click += new EventHandler(txtPictValue_Click);

        }

        #endregion End Load

 

        #region pbs_click Event

        private void pbs_Click(object sender, EventArgs e) // picture box click

        {

            try

            {

                        PictureBox currentButton = new PictureBox();                       

                        currentButton = (PictureBox)sender;

                        lblPictName.Text = currentButton.Name;

                        //lblPictName.Visible = true;                                                               

            }

 

            catch (System.Exception)

            {

            }

        }

        #endregion End pbs+click

        PictureBox[] pbs;

        #region btnGenPictBox_Click

        private void btnGenPictBox_Click(object sender, EventArgs e)

        {

            int num = 0;

           

            if (int.TryParse(txtPictValue.Text, out num))

            {

                int i = 0;

                pbs = new PictureBox[num];

                for (i = 0; i < pbs.Length; i++)

                {

                    pbs[i] = new PictureBox();

                    pbs[i].Name = "Picturebox" + (i + 1);

                    pbs[i].Location = new Point(20, pbs[i].Bottom + (i * 300));

                    pbs[i].Size = new Size(700, 500);

                    //pbs[i].MouseClick += new MouseEventHandler(pbs_Click);

 

                    this.Controls.Add(pbs[i]);

                    pbs[i].Click += new EventHandler(pbs_Click); // calling the PictureBox Click event....

                    pbs[i].BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle;

               // }

                    int m=0;

                    System.Windows.Forms.ContextMenuStrip docmenu = new System.Windows.Forms.ContextMenuStrip();

                    System.Windows.Forms.DialogResult result = folderBrowserDialog1.ShowDialog();

                    if (result == DialogResult.OK)

                    {

                        System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(folderBrowserDialog1.SelectedPath);

                        if (dir.Exists == true)

                            dir.Refresh();                                                   

                        txtPathName.Text = dir.FullName;                        

                        {

                            foreach (FileInfo file in dir.GetFiles("*.jpg"))

                            {

                                System.Windows.Forms.ToolStripMenuItem toolmenus = new System.Windows.Forms.ToolStripMenuItem();

                                toolmenus.Text = file.ToString();

                                m++;

                                //contextMenuStrip1.Items.AddRange(new System.Windows.Forms.ToolStripMenuItem[] { toolmenus });

                                docmenu.Items.AddRange(new System.Windows.Forms.ToolStripMenuItem[] { toolmenus });

                                pbs[i].Name = "PictureBox" + i;

                                //pbs[i].ContextMenuStrip = this.contextMenuStrip1;   

                               

                                pbs[i].ContextMenuStrip =docmenu;                              

 

                                pbs[i].Click  += new EventHandler(pbs_Click);                               

                                toolmenus.Click+=new EventHandler(toolmenus_Click);

                            }

                        }

                    }                       

                    else

                        if (result == DialogResult.Cancel)

                        {

                            MessageBox.Show("You Cancled The Browsing....");

                        }

                   

                }

            }

 

        }

        #endregion

        #region reset Button

        private void btnReset_Click(object sender, EventArgs e)

        {

            if (pbs.Length > 0)

            {

                for (int i = 0; i < pbs.Length; i++)

                {System.Windows.Forms.ContextMenuStrip docmenu = new System.Windows.Forms.ContextMenuStrip();

                    txtPathName.Text = "";

                    txtPictValue.Text = "";

                    docmenu.Dispose();

                    pbs[i].Dispose();                   

                }

            }

        }

        #endregion

 

        #region show the Reset Button click into textbox

        private void txtPictValue_Click(object sender, EventArgs e)

        {

            btnReset.Visible = true;

        }

        #endregion

 

        #region Handle the ContextMenu click events

        private void toolmenus_Click(object sender, EventArgs e)

        {

            if (pbs.Length > 0)

            {

                PictureBox pb = new PictureBox();

                pb.Click += new EventHandler(pbs_Click);

                pb.Name = lblPictName.Text;

                for (int i = 0; i < pbs.Length; i++)                   

                {

                    if (pbs[i].Name == pb.Name)

                    {

                        {

                            System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(folderBrowserDialog1.SelectedPath);

                            if (dir.Exists == true)

                            {

                                dir.Refresh();

                                System.Windows.Forms.ToolStripMenuItem myItem = default(System.Windows.Forms.ToolStripMenuItem);

                                myItem = (System.Windows.Forms.ToolStripMenuItem)sender;

                                string imgshow = dir + "\\" + myItem.ToString();

                                txtPathName.Text = imgshow.ToString();

                                this.Text = myItem.Name;

                                if (System.IO.File.Exists(imgshow))

                                  pbs[i].Image = Image.FromFile(imgshow);

                            }

                        }

                    }

                }

            }

        }

        #endregion

    }

}