MDI子表单起始位置问题

时间:2009-11-28 06:52:42

标签: c# forms 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 个答案:

答案 0 :(得分:3)

您的计算可能会考虑到顶部的窗口栏。

您可以查看PointToClientPointToScreen

答案 1 :(得分:1)

你应该像这样最小化儿童形状的高度和宽度

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