Winform控件的动态缩放

时间:2014-08-15 14:38:24

标签: c# winforms dynamic scaling

简而言之:我有一个ListView,我想动态地将它扩展为ListView所在的容器。我读起来太傻了还是没有财产?如果没有,有人知道怎么做?

3 个答案:

答案 0 :(得分:1)

您需要做的是在控件上设置“锚点”。您可以将锚点设置为与控件更改大小的方式相对应。

Anchor Settings

如果您希望控件填满整个空间,只需将“Dock”设置为居中。您还可以将停靠点设置为其他一些内容。 See Here

答案 1 :(得分:0)

您还可以在表单上使用Resize事件,如下所示:

    private void Form1_Resize(object sender, EventArgs e)
    {
        int SIDEPAD = 10;
        listBox1.Width = Width / 2;
        listBox1.Height = Height / 2;
        listBox1.Top = (Height - listBox1.Height - button1.Height) / 4;
        listBox1.Left = (Width - listBox1.Width - SIDEPAD) / 2;

        button1.Width = Width / 2;
        button1.Top = ((Height - listBox1.Height - button1.Height) / 4) * 2 + listBox1.Height;
        button1.Left = (Width - listBox1.Width - SIDEPAD) / 2;
    }

这将使按钮和列表框保持相等的间距......这对程序来说有点烦人,但它会确保一切看起来都很好。 (Sidepad是表格边框的宽度;我认为它实际上可能是8 ......但我看起来很好。)

答案 2 :(得分:0)

解决方案是将您的控件放入TableLayoutPanel并将Dock的{​​{1}}设置为ListView。然后,将Fill的{​​{1}}设置为Dock,以便根据其父表单进行调整。