Нужно создать перезапуск програмы с сохранением условия чекбокса

здраствуйте! у меня проблема:

наработает условие visible (советую прочитать чтобы было понятно другое)

и вот я придумал как решить эту проблему! дело в том что код который мы создали срабатывал 1 раз иза того что он проверялся через событие load а этот load срабатывал 1 раз потому что потом он работал через hide/showe. так вот в чем идея? мы при каждом изменением дизайна через mesegebox будем спрашивать сохранить изменение или нет и если человек ответит да то с отсчетом в 2 секунды приложение запустится И значение у нашего чекбокса ДОЛЖНО СОХРАНИТЬСЯ и потом при запуске программы когда человек еще не прогрузил все формы свойства hide/show еще не будут работать и программа через событие load проверит какое значение у чекбокса сейчас! короче говоря надо сделать код который сам перезапустит программу по тем условиям которые я говорил и сохранит значение у чекбоса. надеюсь понятно)

Это с чего такой вывод? Что там проверять, там же просто видимость картинки менялась. Только не у той формы, которая показана на экране.

Ну вот пример как можно сделать. Совсем прям простой и в лоб.

    public class GlobalSettings
    {
        bool _button1Visible = true;
        bool _button2Visible = true;
        bool _button3Visible = true;

        public bool Button1Visible
        {
            get { return _button1Visible; }
            set
            {
                _button1Visible = value;
                SettingsChange?.Invoke(this, new EventArgs()); // можно прработать делегат чтобы передавать конкретное измененное свойство
            }
        }

        public bool Button2Visible
        {
            get { return _button2Visible; }
            set
            {
                _button2Visible = value;
                SettingsChange?.Invoke(this, new EventArgs()); // можно прработать делегат чтобы передавать конкретное измененное свойство
            }
        }

        public bool Button3Visible
        {
            get { return _button3Visible; }
            set
            {
                _button3Visible = value;
                SettingsChange?.Invoke(this, new EventArgs()); // можно прработать делегат чтобы передавать конкретное измененное свойство
            }
        }


        /// <summary>
        /// Событие обновления каких то параметров настроек
        /// </summary>
        public event EventHandler SettingsChange;
    }

Самая главная форма приложения

public partial class Form1 : Form
    {
        GlobalSettings settings = new GlobalSettings();

        List<BasedForm> ControlledForms = new List<BasedForm>();

        public Form1()
        {
            InitializeComponent();
        }

        private void Form1_Load(object sender, EventArgs e)
        {
            for (int i = 0; i < 5; i++)
            {
                BasedForm nform = new BasedForm();
                // подписываем форму на измененеия
                settings.SettingsChange += (ox, ex) => { nform.UpdateState(ox as GlobalSettings); };

                // добавляем в список
                ControlledForms.Add(nform);                

                // показываем
                nform.Show();
                nform.TopMost = true;
                nform.Location = new Point(10 + ControlledForms.Count * nform.Width + 5, 20);

// опционально, если файл настроек был загружен предварительно 
                nform.UpdateState(settings);
            }
        }

Тут меняем параметры настроек
        private void CheckChangeBoxes(object sender, EventArgs e)
        {
            if(sender is CheckBox cbos)
            {
                if (cbos == checkBox1) settings.Button1Visible = cbos.Checked;
                if (cbos == checkBox2) settings.Button2Visible = cbos.Checked;
                if (cbos == checkBox3) settings.Button3Visible = cbos.Checked;
            }
        }
    }

Базовые формы которые необходимо менять

public partial class BasedForm : Form
    {
        public BasedForm()
        {
            InitializeComponent();
        }

        public void UpdateState(GlobalSettings settings)
        {
            button1.Visible = settings.Button1Visible;
            button2.Visible = settings.Button2Visible;
            button3.Visible = settings.Button3Visible;
        }
    }

WindowsFormsApp1.7z (4.4 КБ)

Данный метод будет создавать единый стиль для всех дочерних окон. Для сохранения настроек и загрузки нужно позаботится отдельно любым способом.

дайте пожалуйста исходники

Так а тут же и есть почти всё, просто создать 2 формы с этими именами, на одной 3 чекбокса, на другой 3 кнопки.

я хочу увидить это сам. мне так проще

Что увидеть то?? Все исходники фактически выложил.

Ну вот, смотрите.
WindowsFormsApp1.7z (21.6 КБ)

сделал как все сказали! но в этой строчке кода ошибка!
а имено в название

секретная?

всмысе

Ошибка-то какая?

Severity Code Description Project File Line Suppression State
Error CS0051 Inconsistent accessibility: parameter type ‘GlobalSettings’ is less accessible than method ‘update.UpdateState(GlobalSettings)’ REx G:\работа\REx\Resources\common version\update.cs 257 Active
public void **UpdateState**(GlobalSettings settings)
   {
        update_newYear.Visible = settings.Button1Visible;
   }

public в объявлении класса GlobalSettings добавить.

так он итак там есть

это

public class GlobalSettings
{

У вас так получается то?? У вас есть 100% рабочий исходный код. Откуда может взяться ошибка то??
Поставьте русскую студию чтобы по сообщения об ошибках было человечьим языком.

хмм нечего не работает! может это иза того как появляются эти формы? я вам ща скину сурсы для примера

Так английский тоже человечий. И он используется намного большим числом человеков, так что проще гуглить ошибки.

вот пример как работает меню и т.д.

Так и что тут смотреть? Тут нет GlobalSettings и т.д.