【问题标题】:How to have PictureBoxs adjust height, width, and location to a form when form size changes? [duplicate]当表单大小发生变化时,如何让 PictureBoxs 调整表单的高度、宽度和位置? [复制]
【发布时间】:2016-03-20 16:00:39
【问题描述】:

如何让我的图片框相对于表单的大小调整它们的高度、宽度和位置?现在我的默认值是这样的:

但如果我用鼠标调整它的大小,它看起来像这样:

我怎样才能得到它,以便它正确且按比例(相对于表单的尺寸)填充空间?

这是我尝试过的:

   private void Form1_Resize(object sender, EventArgs e) {
            //adjust the size of the tiles relative to the dimension of the window
            if (Size != new Size(442, 465)) {//the default size of the form
                for (int i = 0; i < picBox.Length; i++) {
                    picBox[i].Height = Size.Height / 4;//picBox is an array of PictureBoxs with default heights, widths, and locations
                    picBox[i].Width = Size.Width / 4;
                }
            }
        }

我的问题与this one 不同,因为我试图让我的内容适应表单的大小,而不是相反。

【问题讨论】:

    标签: c# forms resize picturebox


    【解决方案1】:

    使用 AutoSize 强制表单调整大小以适应其内容。 无论 AutoSize 和 AutoSizeMode 属性的值如何,窗体都不会在 Visual Studio 窗体设计器中自动调整大小。窗体在运行时根据这两个属性的值正确调整自身大小。相比之下,自定义 UserControl 会在设计时和运行时自动调整自身的大小。 使用 AutoSize 时,会考虑 MinimumSize 和 MaximumSize 属性,但会忽略 Size 属性的当前值。使用 AutoSize 和 AutoSizeMode 也会使 AutoScroll 属性变得多余,因为无法缩小表单以隐藏其包含的控件。 有关 AutoSize 为 true 时表单的行为方式的信息,请参阅 AutoSizeMode 枚举。

    private void Form1_Load(object sender, EventArgs e)
    {
        this.AutoSize = true;
        this.AutoSizeMode = AutoSizeMode.GrowAndShrink;
    }
    

    更多信息请参考Thismicrosoft 链接

    winforms 应用程序在运行时可变大小的窗口存在一些限制。在你的情况下,我建议不要让用户调整窗口大小,而是通过下面的表单加载事件代码使他的应用程序窗口适合他的屏幕分辨率。

    this.Location = new Point(0, 0);
    this.Size = Screen.PrimaryScreen.WorkingArea.Size;
    

    【讨论】:

    • 感谢您的回复,但是当我尝试时它甚至不会让我更改大小...
    • 请参考这里,Winforms有限制stackoverflow.com/questions/5962595/…
    • 我也试过了,但没有运气。
    • 我更新了答案只是尝试遵循相同的方法
    猜你喜欢
    • 1970-01-01
    • 2016-12-06
    • 1970-01-01
    • 2017-10-10
    • 1970-01-01
    • 2013-03-24
    • 2019-12-12
    • 2020-08-04
    • 2019-11-18
    相关资源
    最近更新 更多