自定义UserControl的点击事件无法触发

时间:2018-03-29 13:22:47

标签: c# events user-controls

所以我在UserControlPictureBox之外创建了一个自定义RadioButton,如下所示:

public partial class Foo : UserControl
{
    //some declared properties for the designer...
}

enter image description here

现在我将此对象添加到Form并订阅了Click()事件。

private void customAddedContr_Click(object sender, EventArgs e) { }

但只需点击此红色标记的部分即会触发Click()事件。

enter image description here

所以只需点击UserControl本身,所以当对PictureBoxRadioButton执行点击时,此Click()事件不会被触发。我认为针对此窗口句柄的每次点击都会触发此新Click的{​​{1}}事件。

所以我需要将UserControlPictureBox的{​​{1}}事件绑定到RadioButton' { {1}}事件早期或我应该监督什么?

修改

为了理解目的,这是Click()的彩色图片。

enter image description here

顶部深灰色部分是UserControl。蓝色的是Click()本身,我放置了其他控件。浅灰色底部是CustomControl。因此,只需点击蓝色部分(PictureBox)即可触发UserControl事件。

1 个答案:

答案 0 :(得分:0)

我建议单独公开图片框和单选按钮单击事件。

您可以在用户控制级别和每次单击内部为收音机和图片框引发自己的事件,甚至可以引发控件事件。然后你处理控件之外的那些点击事件并做出相应的响应。

public partial class Foo : UserControl
{
    public event EventHandler RadioButtonClicked;
    public event EventHandler PictureBoxClicked:
}

然后在控件内的图片框或按钮单击事件中,您可以在控件级别提升单个事件

private void PictureBox1_Click(object sender, EventArgs e)
{
    if (PictureBoxClicked != null)
        PictureBoxClicked(sender, e);
}