我有一个新应用程序,例如cafe的manager,并为我的应用程序创建了一个用户控件。我的用户控件的名称是TableButton。它包括图片框和标签,并具有三个属性(ID,名称,状态)。
当我将其添加到表单中(带有循环)并单击它时,它会发送到不需要的事件数据(对象发送者是“图片框”或标签,具体取决于我是否单击“图片框”或标签。无法获取数据(ID,名称,状态)。 我想当我单击TableButton中的任意位置时,对象发送者是TableButton,并且可以从中获取数据。
那么这有什么解决方案? 我的英语不好,所以也许我的文章是错误的并且难以理解。希望您能避免这种不便之处。非常感谢。
答案 0 :(得分:0)
当我单击表格按钮中的任意位置时,我想要的是对象发送者 tablebutton,我可以从中获取数据。
如果您为子控件的Click
事件订阅处理程序,并在该处理程序中触发用户控件的Click
,则将获得所需的影响。您可以做到:
public partial class TableButton : UserControl
{
class TableButtonControlCollection : ControlCollection
{
TableButton owner;
public TableButtonControlCollection(TableButton owner) : base(owner)
{
this.owner = owner;
}
public override void Add(Control value)
{
base.Add(value);
value.Click += Value_Click;
}
private void Value_Click(object sender, EventArgs e)
{
owner.OnClick(EventArgs.Empty);
}
}
protected override ControlCollection CreateControlsInstance()
{
return new TableButtonControlCollection(this);
}
}
将此代码段添加到您的TableButton
类中