子窗体未捕获任何鼠标事件

本文关键字:任何 鼠标 事件 窗体 | 更新日期: 2023-09-27 18:19:56

我有一个windows窗体应用程序,我在其中实例化另一个窗体(从主窗体)并调用它的Show()方法。由于某些原因,我无法接收子窗体上的任何鼠标事件(它上没有控件)。鼠标事件在父窗体上运行良好(在没有控件的区域中)。

但是,如果我重写基类方法,我可以让鼠标事件在子窗体上工作。

protected override void OnMouseDown(MouseEventArgs e)
    {
        // This works fine
    }

这似乎完全错了。我错过了什么?

子窗体未捕获任何鼠标事件

我终于想通了。我为子窗体创建了一个自定义构造函数。它没有调用您在普通构造函数中看到的InitializeComponent()方法。坦率地说,我不知道initializeComponent方法的作用,但我知道它不会让你有任何鼠标事件。虽然这有点愚蠢,但我希望它能让其他人头疼。

我应该把我的重载构造函数链接成这样:

public ChildForm(... params ...) : this()
{
    // code here...
}