У меня есть пользовательский элемент управления (панель), на котором есть какая-то кнопка.
У этой кнопки есть 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
для пользовательского контроля.
Как мне этого добиться?