单击禁用的控件在C#中调用父事件

时间:2015-03-25 16:16:46

标签: c# winforms events

我在Visual Studio 2013中使用C#而且我对这种环境和语言还是比较陌生的,所以如果这是一个愚蠢的问题,请耐心等待。

我有一组驻留在面板上的按钮。 所有按钮都有onClick事件,以及按钮所在的面板。如果启用该按钮,则按预期调用按钮事件处理程序。然而;如果未启用该按钮,则会调用面板的onclick事件处理程序。

在我的预C#windows编程经验中,单击禁用按钮对正在运行的程序没有任何影响。这里发生了什么,以及如何防止父母事件被触发?

1 个答案:

答案 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)
            }
        };