2015-10-31 32 views
0

我有一个Windows窗体应用程序,我在其中实例化另一个窗体(从主窗体)并将其称为Show()方法。出于某种原因,我无法在子窗体上收到任何鼠标事件(其上没有控件)。鼠标事件在父窗体上工作正常(在没有控件的区域)。子窗体没有捕获任何鼠标事件

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

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

这看起来完全错误。我错过了什么?

回答

0

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

我应该有我的次链式重载的构造函数是这样的:

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