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
}
}