使用一个按钮来缩小和增长

Use One Button To ShrinK & Grow

在我的 windows 表单上,我想添加一个按钮,允许扩大 and/or 缩小表单。这可以只用一个按钮完成,还是我需要添加 2 个单独的按钮?这是我用来在按下按钮时增长的代码。如果再次按下按钮如何变小?

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

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

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

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

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;
}

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

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";
    }
}

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

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