我有一个Windows窗体应用程序,我在其中实例化另一个窗体(从主窗体)并调用它的Show()方法。由于某种原因,我无法在子表单上接收任何鼠标事件(它没有控件)。鼠标事件在父窗体上工作正常(在没有控件的区域中)。
但是,如果我覆盖基类方法,我可以让鼠标事件在子表单上工作。
protected override void OnMouseDown(MouseEventArgs e)
{
// This works fine
}
这似乎完全错了。我失踪了怎么回事?
答案 0 :(得分:0)
我终于明白了。我为子表单创建了一个自定义构造函数。它没有打电话给
您在普通构造函数中看到的InitializeComponent()
方法。坦率地说,我不知道initializeComponent方法的作用,但我知道它不会让你有任何鼠标事件。虽然这有点愚蠢,但我希望它可以让别人头疼。
我应该像这样链接我的重载构造函数:
public ChildForm(... params ...) : this()
{
// code here...
}