Передать обработчик событий с дополнительными параметрами в событие Click - PullRequest
0 голосов
/ 27 сентября 2018

У меня есть пользовательский элемент управления (панель), на котором есть какая-то кнопка.

У этой кнопки есть EventHandler, которая выглядит следующим образом:

private void AddImageToLayout(object sender, EventArgs e)
{
    PictureBox pb = new PictureBox();
    pb.BackColor = Color.FromArgb(rnd.Next(256), rnd.Next(256), rnd.Next(256));
    pb.Width = 50;
    pb.Height = 50;

    //Base part
    this.FlowLayoutPanel.Controls.Add(pb);

    LayoutControl c = new LayoutControl(pb, ElementProperties_Sirina_nud);
    _Layout.Controls.Add(c);
    //========================
}

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

Я добился этого, объявив public EventHandler Button_AddImageToLayout в своем пользовательском элементе управления, и изменил событие .Click на this.New_Image.Click += (Button_AddImageToLayout == null) ? AddImageToLayout : Button_AddImageToLayout;

Этоработает как талисман, но есть и другая проблема, с которой я столкнулся.

Новый обработчик событий, который мне нужно написать, должен иметь Base part (который там прокомментирован), но я хочу избежать этого и хочу, чтобы пользователь передавал только Control для пользовательского контроля.

Как мне этого добиться?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...