2015-06-08 50 views
-1

那么,我正在写一个简单的应用程序,它将有多个窗体。现在说一个表单将成为基础窗口,即父母和其他所有人将成为它的孩子。所以为此,我试图通过下面的方法打开子窗口。在C#Winform中的子窗体工具

//内部类FormBaseWindow

private void linkLabelReservation_LinkClicked(object sender, LinkLabelLinkClickedEventArgs e) 
{ 
    Point childLocation = new Point(this.Location.X + 100, this.Location.Y + 120); 
    FormReservation formReserve = new FormReservation(); 
    formReserve.Location = childLocation; 
    formReserve.MdiParent = this.MdiParent; 
    formReserve.Show(); 
} 

,还可以设置FormBaseWindow类的属性的IsMdiContainer为true。现在的事情是,我想要拖动FormBaseWindow窗口会拖动整个事物,包括其中的子窗口。目前,当我点击FormBaseWindow窗口时,它的前景和孩子就会在后面。

在MFC中,我可以通过设置窗口样式Child并将其设置为子窗口来实现,但这里的故事有点不同。

我使用C#的WinForms与VS 2012

回答

1

变化:

formReserve.MdiParent = this.MdiParent; 

formReserve.MdiParent = this; 

注:您应该使用

formReserve.MdiParent = this.MdiParent; 

当你从另一个孩子窗体打开一个孩子窗体,使其在同一MdiParent下。

+0

谢谢。有效。 – hypheni

+0

感谢队友,再快一点。你能告诉我为什么在将IsMdiParent属性设置为true时为什么父窗口背景重新设置为默认窗口控件颜色(灰色)? – hypheni

+0

@hypheni:很容易理解,它是一个容器。如果你愿意,你可以改变它,或者使用任何背景图片。 –