2009-11-28 92 views
1

我有MDI子窗体的开始位置这个奇怪的问题。 这是我的开始位置的代码,我想它是MDI父窗体 的中间左侧。MDI子窗体开始位置问题

 //show the task bar 
     ChildForm c1 = new ChildForm(); 

     c1.MdiParent = this; 
     c1.StartPosition = FormStartPosition.Manual; 
     c1.Location = new Point(0, this.Height/2); 

奇怪的是每次我开始我的MDI父窗体时,垂直滚动条显示 和MDI子窗体比MDI父窗体的高度的一半更低的位置。 然后,如果向下滚动滚动条以查看整个mdi子窗体,则滚动条消失。

此后,无论我如何更改mdi父窗体的大小,滚动条将不会再显示 。

有没有人知道为什么?

此外,我想知道是否有可能隐藏一个mdi子窗体只有一个类似于控件的控件在mdi父窗体中留下了 。如果用户点击该句柄,则表单再次显示。如果用户 点击其他地方,窗体隐藏。它有点像Window任务栏。

我试图使用form.hide(),但它隐藏了整个mdi子窗体。

感谢

亚历

+2

你可以考虑正确的问题的一票! :-) – PSyLoCKe

回答

3

是可能是你的计算是考虑到顶部的窗栏。

你可以看看PointToClientPointToScreen

+0

是的,使用PointToClient解决了这个问题。 谢谢 – alex

+0

是否有人知道我的第二个问题的答案? – alex

+0

经过多次试验后,滚动条再次出现,这一次,不仅是垂直的,有时候,水平的也会出现。 – alex

1

你sholud minuse子窗体的高度和宽度这样

c1.Location = new Point(0, (this.Height - c1.Height)/2);