# Как назначить события на динамические кнопки

**URL:** <https://forum.itvdn.com/t/kak-naznachit-sobytiya-na-dinamicheskie-knopki/3799>\
**Category:** C# / .NET Developer\
**Created:** [06.10.2021 10:48:47 UTC](https://forum.itvdn.com/t/kak-naznachit-sobytiya-na-dinamicheskie-knopki/3799 "2021-10-06T10:48:47Z")\
**Posts on this page:** 2\
**Page:** 1

<div class="post-metadata">

**Author:** ![Andrey1702](https://forum.itvdn.com/letter_avatar_proxy/v4/letter/a/22d042/32.png) [@Andrey1702](https://forum.itvdn.com/u/Andrey1702)\
**Post date:** [06.10.2021 10:48:48 UTC](https://forum.itvdn.com/t/kak-naznachit-sobytiya-na-dinamicheskie-knopki/3799/1 "2021-10-06T10:48:48Z")

</div>

При нажатии на кнопку btn\_scrennshot\_Click создается динамический picturebox и еще 2 кнопки btn\_exort\_to\_panel2 и btn\_deletethispb, на Picturebox видно только одну кнопку слева сверху, вторая не отображается, как указать локализации кнопок в Picturebox, и как можно создать событие на btn\_exort\_to\_panel2 отправить этот Picture box в flowLayoutPanel\_images.  
А на кнопку btn\_deletethispb - удалить этот Picturebox со всеми кнопками, изображениями и тектовыми данными? Заранее благодарю!

```auto
private void btn_scrennshot_Click(object sender, EventArgs e)
    {
        
        var pb = new PictureBox();
 
        var name = new Label();
 
        var btn_deletethispb = new Button();
 
        var btn_exort_to_panel2 = new Button();
        
        try
        {
            Mat m = new Mat();
 
            capture.Retrieve(m);
 
            pb.Image = m.ToImage<Bgr, byte>().Flip(Emgu.CV.CvEnum.FlipType.None).Bitmap;
 
            pb.SizeMode = PictureBoxSizeMode.Zoom;
 
            pb.Height = pb.Image.Height / 2;
 
            pb.Width = pb.Image.Width / 2;                
 
            name.Text = $"SMV_{textBox_surename.Text + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second}";
 
            flowLayoutPanel1.Controls.Add(pb);                
 
            flowLayoutPanel1.Controls.Add(name);
 
            pb.Controls.Add(btn_exort_to_panel2);
 
            btn_exort_to_panel2.Text = "Выбрать";
 
            pb.Controls.Add(btn_deletethispb);
 
            btn_deletethispb.Text = "Удалить";                
        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message, "Ошибка!", MessageBoxButtons.OK, MessageBoxIcon.Error);
        }
    }

```

---

<div class="post-metadata">

**Author:** ![dietmar](https://forum.itvdn.com/user_avatar/forum.itvdn.com/dietmar/32/339_2.png) [@dietmar](https://forum.itvdn.com/u/dietmar)\
**Post date:** [12.10.2021 12:42:30 UTC](https://forum.itvdn.com/t/kak-naznachit-sobytiya-na-dinamicheskie-knopki/3799/2 "2021-10-12T12:42:30Z")

</div>

Для того чтобы поменять позицию элементов управления вам нужно задать значения для свйоства Location (тип данного свойства Point)

Например  
`btn_deletethispb.Location = new Point(225, 198);`

для того чтобы добавить обработчики на события для контролов нужно воспользоваться событием и установить для этого события делегать связанный с методом как обработчик

например  
`btn_deletethispb.Click += new System.EventHandler(this.button_Clicked);`

сам обработичк будет выглядеть как

```auto
private void button_Clicked(object sender, EventArgs e)
{ }

```

Если вы используете VisualStudio то после того как напишете `btn_deletethispb.Click +=` дважди нажмите Tab и студия сама допишет создание делегата и метода обработчика
