我在Visual Studio 2013中使用C#而且我对这种环境和语言还是比较陌生的,所以如果这是一个愚蠢的问题,请耐心等待。
我有一组驻留在面板上的按钮。 所有按钮都有onClick事件,以及按钮所在的面板。如果启用该按钮,则按预期调用按钮事件处理程序。然而;如果未启用该按钮,则会调用面板的onclick事件处理程序。
在我的预C#windows编程经验中,单击禁用按钮对正在运行的程序没有任何影响。这里发生了什么,以及如何防止父母事件被触发?
答案 0 :(得分:2)
您可以通过以下方式检测到它:
panel.Click += delegate {
var l = Cursor.Position;
l = panel.PointToClient(l);
var c = panel.GetChildAtPoint(l);
if (c == null) {
// good
}
else {
// ignore (disabled control)
}
};