所以我在UserControl
和PictureBox
之外创建了一个自定义RadioButton
,如下所示:
public partial class Foo : UserControl
{
//some declared properties for the designer...
}
现在我将此对象添加到Form
并订阅了Click()
事件。
private void customAddedContr_Click(object sender, EventArgs e) { }
但只需点击此红色标记的部分即会触发Click()
事件。
所以只需点击UserControl
本身,所以当对PictureBox
或RadioButton
执行点击时,此Click()
事件不会被触发。我认为针对此窗口句柄的每次点击都会触发此新Click
的{{1}}事件。
所以我需要将UserControl
和PictureBox
的{{1}}事件绑定到RadioButton
' { {1}}事件早期或我应该监督什么?
修改
为了理解目的,这是Click()
的彩色图片。
顶部深灰色部分是UserControl
。蓝色的是Click()
本身,我放置了其他控件。浅灰色底部是CustomControl
。因此,只需点击蓝色部分(PictureBox
)即可触发UserControl
事件。
答案 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);
}