我正在尝试调整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子表格不会改变尺寸?
答案 0 :(得分:0)
在子表单中,AutoScaleMode
保持None
为tabs
。
这将解决它。