Изменение размера формы во время выполнения в С#

Как изменить размер формы окна во время выполнения?

Я видел примеры, но для каждого требуется свойство Form.Size. Это свойство можно задать следующим образом: http://msdn.microsoft.com/en-us/library/25w4thew.aspx#Y456, но я создал свою форму приложения в визуальном инструменте, и форма создается следующим образом:

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

Как мне установить свойство Size сейчас, а затем изменить его методами Form.Height и Form.Width?

Ответ 1

Если вы хотите программно манипулировать формой, самым простым решением является сохранение ссылки на нее:

static Form myForm;

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

Затем вы можете использовать это для изменения размера (или того, что еще вы хотите сделать) во время выполнения. Хотя в качестве указывает стрелка, вы не можете напрямую установить Width и Height, но должны установить свойство Size.

Ответ 2

Вы не можете изменять свойства Width и Height формы, так как они являются readonly. Вы можете изменить размер формы следующим образом:

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

Ответ 3

Чтобы вызвать это, вам нужно будет сохранить ссылку на вашу форму и передать ссылку на метод запуска. Затем вы можете вызвать это в обработчике действий.

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

Ответ 4

Вы можете изменить высоту формы, выполнив следующее, в котором вы хотите изменить размер (замените "10" для вашего размера):

this.Height = 10;

Это можно сделать и с шириной:

this.Width = 10;

Ответ 5

Что-то вроде этого отлично подходит для меня:

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, вы можете просто использовать свойство для установки размера.