是什么阻止我调整窗口对象的大小(缩小尺寸)?

Mai*_*ixy 19 c# resize winforms

我有一个Windows窗体对象,包含3个对象,一个树视图,一个richtextbox和一个tabcontrol.它们没有停靠在窗体中,但它们是锚定的(顶部+左侧).

我已经编写了代码来调整form-resize事件处理程序时调整它们的大小,但它似乎只是为了增加表单大小,也就是说,我无法将表单调整为更小的大小.这包括我首次增加主窗体然后尝试将其恢复为原始大小的时间.

使用以下代码调整每个Form调整大小后,手动设置三个对象的大小:

        treeView1.Height += (this.Height - oldHeight);
        richTextBox1.Width += (this.Width - oldWidth);
        tabControl1.Width += (this.Width - oldWidth);
        tabControl1.Height += (this.Height - oldHeight);
        oldHeight = this.Height;
        oldWidth = this.Width;
Run Code Online (Sandbox Code Playgroud)

没有任何对象具有设置的最小大小(在整个大小调整过程中它们都是0,0)

是什么阻止将表单调整为较小的大小?

Mai*_*ixy 21

自动调整大小(在主Form对象上设置)阻止窗口减小到小于其中包含的对象的大小.随着主窗体中的对象在每次扩展调整大小时增加,主窗体在任何调整大小增长后都无法缩小.通过在主Form对象上禁用自动调整大小,我能够重新获得调整大小的完全控制权.

  • 对于阅读此内容的其他人,请查看"AutoSizeMode"属性,默认为GrowOnly.将其更改为GrowAndShrink也可以解决此问题(没有承诺). (3认同)