Перезагрузить форму в MDI

Я открываю форму в родительском MDI таким образом:

public partial class MDIParent1 : Form
{
    private void ToolStripMenuItem1_Click(object sender, EventArgs e)
    {
        Form1 Form1 = new Form1();
        Form1.MdiParent = this;
        Form1.Show();
    }
}

Как перезагрузить Form1 в Form1?

public partial class Form1 : Form
{
    private void Button1_Click(object sender, EventArgs e)
    {
        Form1 Form1 = new Form1();
        this.Dispose();
        Form1.MdiParent = new MDIParent1();
        Form1.Show();
    }
}

person Karlx Swanovski    schedule 21.08.2013    source источник
comment
Что вы имели в виду под перезагрузить форму 1?   -  person Sriram Sakthivel    schedule 21.08.2013
comment
Предоставленный код не может работать, потому что объект не может удалить себя. Родитель должен. Напрашивается вопрос: что именно вы пытаетесь сделать?   -  person NotMe    schedule 21.08.2013
comment
По крайней мере, я думаю, что люди должны проголосовать за использование Form1 в качестве имени переменной, которое в точности совпадает с именем класса Form1, с таким использованием мы можем получить доступ ко всем instance members из Form1 и ко всем static class members класса Form1 :)   -  person King King    schedule 21.08.2013
comment
@SriramSakthivel - я имел в виду закрыть форму и открыть ее снова   -  person Karlx Swanovski    schedule 21.08.2013
comment
Это не имеет смысла to close the form and open it again из формы вызова. Почему вы хотите это сделать? Это проблема обновления, предложенная jth41?   -  person LarsTech    schedule 21.08.2013
comment
Я просто хочу перезагрузить форму. Удалить все изменения, которые произошли   -  person Karlx Swanovski    schedule 21.08.2013
comment
this.Dispose(); закроет/выключит/уничтожит/убьет текущую форму и ее message loop, я думаю, что весь графический интерфейс больше не будет отображаться, обычный код все еще может быть выполнен после this.Dispose(), но если он показывает какой-либо графический интерфейс, графический интерфейс будет немедленно закрыт (даже ShowDialog()).   -  person King King    schedule 21.08.2013
comment
Создайте метод ClearAllData или что-то в этом роде и добавьте код, очищающий изменения. Для этой цели не рекомендуется закрывать и снова открывать форму.   -  person Sriram Sakthivel    schedule 21.08.2013


Ответы (2)


попробуй это:

Form1 Form1 = new Form1();
Form1.MdiParent = this.Parent;
Form1.Show();
this.close();
person Feri    schedule 21.08.2013

Вы имеете в виду Refresh форму?

вы можете сделать это, вызвав такую ​​функцию:

    public static void LoadAgain()
    {
        Form1.ActiveForm.Refresh();
    }

или Возможно, вам следует продолжить поиск здесь.

person jth41    schedule 21.08.2013