Parameswaran
Parameswaran

Reputation: 314

How to write dynamic pictureBox Click event in C#?

private void button1_Click(object sender, EventArgs e)
{
        PictureBox dynamicPicture1 = new PictureBox();
        dynamicPicture1.Tag = i;
        dynamicPicture1.Location = new Point(x, y);
        dynamicPicture1.Name = "pictureBox" + i;
        dynamicPicture1.Size = new System.Drawing.Size(30, 27);
        dynamicPicture1.ImageLocation = 
            "C:\\Users\\Newfolder\\Downloads\\x`enter code here`ryrvc.jpg";
        panel1.Controls.Add(dynamicPicture1);

}

Upvotes: 0

Views: 131

Answers (2)

manoj
manoj

Reputation: 150

Try this updated code.

private void button1_Click(object sender, EventArgs e)
    {
        int s = 4;
        int x = 0;
        int y = 0;
        for (int i = 0; i < s; i++)
        {
            if (i == 0)
            {
                x = 38;
                y = 60;
            }
            else
            {
                y += 50;
            }

            PictureBox dynamicPicture1 = new PictureBox();
            dynamicPicture1.Tag = i;
            dynamicPicture1.Location = new Point(x, y);
            dynamicPicture1.Name = "pictureBox" + i;
            dynamicPicture1.Size = new System.Drawing.Size(30, 27);
            dynamicPicture1.ImageLocation = @"C:\Users\nxa00960\Downloads\abc.jpg";
            panel1.Controls.Add(dynamicPicture1);

            dynamicPicture1.Click += dynamicPicture1_Click;
        }
    }

    void dynamicPicture1_Click(object sender, EventArgs e)
    {
        var pictureBox = sender as PictureBox;

        switch (pictureBox.Name)
        {
            case "pictureBox0":
                //do something
                break;

            case "pictureBox1":
                //do something
                break;

            case "pictureBox2":
                //do something
                break;

            case "pictureBox3":
                //do something
                break;

            default:
                break;
        }
    }

Upvotes: 1

Ian
Ian

Reputation: 30813

You should put the Method name of your event handler:

dynamicPicture1.Click += dynamicPicture1_Click; //note the name here

And define the event handler somewhere:

void dynamicPicture1_Click(object sender, EventArgs e) {
    throw new NotImplementedException(); //default not implemented
}

The name of the event handler must match each other...

Upvotes: 1

Related Questions