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

Clicking on a disabled control is calling the parent event in C#

我正在使用 VisualStudio 2013 和 C#,我对这种环境和语言还很陌生,所以如果这是一个愚蠢的问题,请多多包涵。

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

根据我的 C# windows 编程经验,单击禁用按钮不会对 运行 程序产生任何影响。这是怎么回事,如何防止 parents 事件被触发?

您可以通过以下方式检测到它:

        panel.Click += delegate {
            var l = Cursor.Position;
            l = panel.PointToClient(l);
            var c = panel.GetChildAtPoint(l);
            if (c == null) {
                // good
            }
            else {
                // ignore (disabled control)
            }
        };