我有一个UserControl
其中包含一些内部控件。像这样的东西:
现在当我在我的项目中使用它时,我想要every如果单击,我的控件点会引发相同的单击事件,就像其他控件一样。
但问题是:我的处理程序在另一个项目中,仅当我单击背景上的某个位置(而不是单击button1 或label1 时)处理单击事件。
我可以通过设置内部控件中的每个事件为主控件引发另一个事件来解决这个问题,但这有点奇怪。
如何让内部控件不覆盖主控件的事件?
我建议利用UserControl
■ Load 事件以迭代项目中的所有子控件,并以编程方式为每个 MouseMoved 事件添加处理程序。这将足够强大,可以处理添加的任何新子控件。例如;
private void UserControl1_Load(object sender, EventArgs e)
{
foreach (Control c in Controls)
{
c.MouseMove += Control_Move;
}
}
protected void Control_Move(object sender, MouseEventArgs e)
{
// do stuff here
}
并且不要忘记将 UserControl 的 MouseMove 事件挂钩到同一个Control_Move
method
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)