Как перезапустить форму Windows form?

234
10 апреля 2019, 14:10

Всем привет.Вопрос следующий: у меня есть форма и мне надо ,чтоб пользователь по нажатию на кнопку "Reset" обнулял форму(возвращал ее в исходное состояние,как при запуске).Еще что очень важно,чтоб она оставалась в том же месте после рестарта где и была. Я писал так:

Application.Restart();

В принципе сойдет,но получается так что класс который находится в файле Program в котором находятся данные тоже затирается со всеми полями.Как сделать чтоб форма просто принимала свой первоначальный вид и оставалась на тех же координатах без потери данных в программе?

Answer 1

Предлагаю такое решение(это program.cs):

using System;
using System.Collections.Generic;
using System.Linq;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
    static class Program
    {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main()
        {
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Form form = new Form1();
            form.DialogResult = DialogResult.Retry;
            while (form.DialogResult == DialogResult.Retry)
            {
                form.DialogResult = DialogResult.OK;
                form = new Form1();
                Application.Run(form);
            }
        }
    }
}

А внутри кнопки рестарт:

        this.DialogResult = DialogResult.Retry;
        this.Close();

Но это кривое решение :)

(собственно, как и перезапуск апликухи)

Я советую просто запомнить расположение всего что нужно на запуске формы, а потом на "рестарт" просто откатить это все назад, как советовал tym32167 в коментах к вопросу. Это умное и правильное решение :)

READ ALSO
Проблема с подсчетом суммы в C#

Проблема с подсчетом суммы в C#

Задача: Даны числовой ряд и некоторое число e>0Найти сумму тех членов последовательности ряда, модуль которых больше или равен заданному e

161
Рисование дерева в Windows Forms

Рисование дерева в Windows Forms

у меня проблема с AutoScroll и рисованием (суть вопроса после кода)Я вот по такому коду рисую AVL- дерево:

210
Не получается удочерить GameObject к Panel, что делать?

Не получается удочерить GameObject к Panel, что делать?

При нажатие на [GameObject] в моём случае им является [Button], нужно удалить это [GameObject] и заспавнить новый [GameObject] с чем мой скрипт успешно справляется,...

184
C# много POST запросов в цикле

C# много POST запросов в цикле

Необходимо выполнить очень много POST запросов на сайт, получить ответ (типо "1,2,3" добавить в массив и отправить запросы на другой URL

188