在C#中在运行时更改表单大小

时间:2012-10-25 08:14:25

标签: c# resize

如何在运行时更改窗体大小?

我看过示例,但每个都需要Form.Size属性。此属性可以像这样设置:http://msdn.microsoft.com/en-us/library/25w4thew.aspx#Y456, 但我已经在可视化工具中创建了我的申请表格,表格就是这样创建的:

static void Main()
{
    Application.Run(new Form());
}

如何现在设置Size属性,然后按Form.HeightForm.Width方法进行更改?

6 个答案:

答案 0 :(得分:33)

您无法更改表单的“宽度”和“高度”属性,因为它们是只读的。您可以像这样更改表单的大小:

button1_Click(object sender, EventArgs e)
{
    // This will change the Form's Width and Height, respectively.
    this.Size = new Size(420, 200);
}

答案 1 :(得分:9)

如果您想以编程方式操作表单,最简单的解决方案是保留对它的引用:

static Form myForm;

static void Main()
{
    myForm = new Form();
    Application.Run(myForm);
}

然后,您可以在运行时使用它来更改大小(或者您想要做的任何其他操作)。虽然Arrow points out为{{3}},但您无法直接设置WidthHeight,但必须设置Size属性。

答案 2 :(得分:4)

为了调用它,您必须存储对表单的引用并将引用传递给run方法。然后你可以在动作处理程序中调用它。

public partial class Form1 : Form
{
    public void ChangeSize(int width, int height)
    {
        this.Size = new Size(width, height);
    }
}

答案 3 :(得分:1)

您可以通过在要更改尺寸的地方执行以下操作来更改表单的高度(替换为您的尺寸的“10”):

this.Height = 10;

这也可以用宽度来完成:

this.Width = 10;

答案 4 :(得分:0)

这样的事情对我来说很好:

public partial class Form1 : Form
{
    Form mainFormHandler;
...
}

private void Form1_Load(object sender, EventArgs e){
    mainFormHandler = Application.OpenForms[0];
   //or instead use this one:
   //mainFormHandler = Application.OpenForms["Form1"];
}

然后您可以更改大小如下:

mainFormHandler.Width = 600;
mainFormHandler.Height= 400;

mainFormHandler.Size = new Size(600, 400);

另一个有用的一点是,如果您想要从另一个mainForm更改Form的大小,您只需使用属性来设置大小。

答案 5 :(得分:0)

作为上述答案的补充;如果需要创建较小的Form,请不要忘记Form MinimumSize属性。

波纹管示例:

private void SetDefaultWindowSize()
{
   int sizeW, sizeH;
   sizeW = 180;
   sizeH = 100;

   var size = new Size(sizeW, sizeH);

   Size = size;
   MinimumSize = size;
}

private void SetNewSize()
{
   Size = new Size(Width, 10);
}