1

我在 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 子窗体。

谢谢

亚历克斯

4

2 回答 2

3

您的计算是否有可能考虑到顶部的窗口栏。

你可以看看PointToClientPointToScreen

于 2009-11-28T07:01:39.930 回答
1

你应该像这样减去孩子的高度和宽度

c1.Location = new Point(0, (this.Height - c1.Height)/2); 
于 2010-12-14T04:29:58.060 回答