2015-10-31 33 views
0

我有一個Windows窗體應用程序,我在其中實例化另一個窗體(從主窗體)並將其稱爲Show()方法。出於某種原因,我無法在子窗體上收到任何鼠標事件(其上沒有控件)。鼠標事件在父窗體上工作正常(在沒有控件的區域)。子窗體沒有捕獲任何鼠標事件

但是,如果我重寫基類方法,我可以讓鼠標事件在子窗體上工作。

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

這看起來完全錯誤。我錯過了什麼?

回答

0

我終於明白了。我爲子窗體創建了一個自定義構造函數。它沒有調用在正常的構造函數中看到的方法 InitializeComponent()。坦率地說,我不知道initializeComponent方法的作用,但我知道它不會讓你有任何鼠標事件。雖然這有點愚蠢,但我希望這可能會讓別人頭疼。

我應該有我的次鏈式重載的構造函數是這樣的:

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