我的Windows窗体上有自定义用户控件。该控件上有几个标签。
我将在我的表单上动态显示这些控件的数组,其中包含不同的数据位。
我想要做的是知道当我点击它时选择了哪个用户控件。
当我单击用户控件上的空白区域时,这是有效的,但是,如果我单击用户控件上的任何标签,它将无法识别用户控件单击。
有关如何进行完全用户控制点击的任何想法,即使点击控件上的标签也是如此?
如果此问题不明确,或者您需要更多信息,请发表评论。
我在c#中这样做。
谢谢!
答案 0 :(得分:11)
在用户控件上单击另一个控件时,不会触发用户控件的单击事件。您需要手动绑定每个元素的click事件。您可以通过用户控件的代码隐藏的简单循环来执行此操作:
foreach (Control control in Controls)
{
// I am assuming MyUserControl_Click handles the click event of the user control.
control.Click += MyUserControl_Click;
}
在完成这段代码之后,当点击对用户控件的任何控件时,将触发MyUserControl_Click。
答案 1 :(得分:0)
foreach (Control c in this.Controls)
{
c.Click += new EventHandler(SameAsForm_Click);
}
请记住,这不会在groupboxes,panel等中将标签的clickevents添加到“SameAsForm_Click”-EventHandler。