使用一个按钮ShrinK&增长

时间:2015-04-08 18:27:10

标签: c# winforms resize size

在我的Windows窗体上,我想添加一个允许增长和/或缩小表单的按钮。这可以只用一个按钮完成,还是需要添加2个单独的按钮?这是我在按钮按下时使用的代码。如果再次按下该按钮怎么能变小?

private void buttonGrowShrink(object sender, EventArgs e)
{
  this.Size = new Size(320, 490);
}

如果再次按下该按钮,我该如何使用相同的按钮缩小到较小的尺寸?

2 个答案:

答案 0 :(得分:1)

下面有两个解决方案。在这两种情况下,我也更改了按钮的文本,以便用户知道如果他们按下它会发生什么,但这是可选的。

一种方法是使用布尔值来跟踪表单的当前大小:

private bool formIsLarge = false;

private void buttonGrowShrink(object sender, EventArgs e)
{
    if (formIsLarge)
    {
        this.Size = new Size(160, 245);
        button1.Text = "Grow Form";
    }
    else
    {
        this.Size = new Size(320, 490);
        button1.Text = "Shrink Form";
    }

    formIsLarge = !formIsLarge;
}

另一种方法是将表单的当前大小与“大”和“小”大小进行比较,并相应地更改大小:

private void buttonGrowShrink(object sender, EventArgs e)
{
    var largeSize = new Size(320, 490);
    var smallSize = new Size(160, 245);

    if (this.Size.Width >= largeSize.Width || this.Size.Height >= largeSize.Height)
    {
        this.Size = smallSize;
        button1.Text = "Grow Form";
    }
    else
    {
        this.Size = largeSize;
        button1.Text = "Shrink Form";
    }
}

答案 1 :(得分:0)

这是一种在两种尺寸之间切换的简便方法。我们以(400,300)和(600,200)为例。只需将这些值加在一起即可获得恒定的大小。然后在每次单击按钮时从该常量中减去当前大小。像这样:

private void buttonGrowShrink(object sender, EventArgs e)
{
    this.Size = new Size(1000, 500) - this.Size;
}