打开时如何防止Mdi子表单大小改变

时间:2016-05-23 20:43:56

标签: c# winforms resize mdi

我正在尝试调整Mdi父表单的大小以适应Mdi子表单的大小。因此,在打开子表单时,父表单会根据子表单的大小调整大小,子表单的大小与设计器中创建的大小相同。

这看起来很简单,我已经几乎通过以下方式实现了它:

frm_newWindow newWindow = new frm_newWindow();
this.ClientSize = newWindow.Size;
newWindow.MdiParent = this;
newWindow.Dock = DockStyle.Fill;
this.MinimumSize = this.Size;
newWindow.Show();

起初,我觉得它很有效 - 父母的形式变得更大,孩子的形象充满了客户区 - 我将继续前进。然而,我仔细观察并意识到尺寸不正确。父表单会重新调整大小,但由于某种原因,表单大小也会更改。因此,表单上的控件尺寸不正确且位置不正确。他们相当接近,但不正确。例如,在设计器中,在列表框下方“自动定位”的文本框(在将文本框拖放到位置时显示文本框和列表框之间的蓝线)最终会在运行时在窗体上降低。

我也尝试过:

this.ClientSize = newWindow.ClientSize

因为子表单没有边框,我认为可能不存在的边框仍然在某种程度上计算子表单的大小。不过,这条线表现相同。

除了Visual Studio创建的InitializeComponent()行之外,子窗体上没有代码。表单的边框样式设置为“无”。除了它的大小和文本之外,其他所有属性都是默认属性。

如何在打开时保持Mdi子表格不会改变尺寸?

1 个答案:

答案 0 :(得分:0)

在子表单中,AutoScaleMode保持Nonetabs。 这将解决它。