将带有附加参数的事件处理程序传递给Click事件

时间:2018-09-27 09:03:18

标签: c# events

我有一个带有一些按钮的自定义控件(面板)。

该按钮的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传递给自定义控件。

我该如何实现?

0 个答案:

没有答案