ImG*_*reg 12
如果我理解正确,您的GameButton用户控件将在单击时触发事件,但不会在单击标签时触发 - 并且您需要两者.这是因为标签(控件)位于背景之上.因此,您还需要使用click事件注册您的标签.这可以在设计器中手动完成,也可以以编程方式为页面上的每个控件完成.
如果要在UserControl中执行每个控件,请将其放入UserControl的OnLoad事件中,并且可以对每个控件使用相同的单击事件:
foreach(Control c in this.Controls){
c.Click += new EventHandler(yourEvent_handler_click);
}
public void yourEvent_handler_click (object sender, EventArgs e){
//whatever you want your event handler to do
}
Run Code Online (Sandbox Code Playgroud)
编辑:最好的方法是在用户控件中创建单击事件处理程序属性.这样,每次向用户控件添加/删除单击事件时,它都会自动将其添加/删除到用户控件中的所有控件.
public new event EventHandler Click {
add {
base.Click += value;
foreach (Control control in Controls) {
control.Click += value;
}
}
remove {
base.Click -= value;
foreach (Control control in Controls) {
control.Click -= value;
}
}
}
Run Code Online (Sandbox Code Playgroud)
这是另一篇文章:
希望这可以帮助!
归档时间: |
|
查看次数: |
16706 次 |
最近记录: |