Всем привет.Вопрос следующий: у меня есть форма и мне надо ,чтоб пользователь по нажатию на кнопку "Reset" обнулял форму(возвращал ее в исходное состояние,как при запуске).Еще что очень важно,чтоб она оставалась в том же месте после рестарта где и была. Я писал так:
Application.Restart();
В принципе сойдет,но получается так что класс который находится в файле Program в котором находятся данные тоже затирается со всеми полями.Как сделать чтоб форма просто принимала свой первоначальный вид и оставалась на тех же координатах без потери данных в программе?
Предлагаю такое решение(это 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 в коментах к вопросу. Это умное и правильное решение :)
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости