Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.86/7: Рейтинг темы: голосов - 7, средняя оценка - 4.86
0 / 0 / 0
Регистрация: 19.06.2022
Сообщений: 3

Как сохранить состояние формы и все её элементы созданнные программно?

19.06.2022, 16:46. Показов 1488. Ответов 4

Студворк — интернет-сервис помощи студентам
Всем привет, подскажите, пожалуйста, возможно ли как то сохранить состояние формы в Windows Forms. У меня есть кнопка, после нажатия которой создаётся новый элемент на этой форме - pictureBox. Как мне сделать так, чтобы после закрытия программы и открытия её вновь на этой форме остался созданный pictureBox? И если вместо pictureBox будут создаваться button, можно ли их сохранить?

Вот так создаётся новый pictureBox при нажатии кнопки:

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
  public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
 
        private PictureBox picture = new PictureBox();
        public int i = 0;
 
        private void button1_Click(object sender, EventArgs e)
        {
            picture = new PictureBox();
 
            this.SuspendLayout();
 
            picture.Location = new Point(160 * i, 130);
            picture.Size = new Size(100, 100);
            picture.BackColor = new Color();
            picture.Image = Properties.Resources._1;
 
            this.Controls.Add(picture);
            this.ResumeLayout();
 
            i++;
        }
    }
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.06.2022, 16:46
Ответы с готовыми решениями:

Как сохранить состояние TreeView после открытия закрытия формы?
На форме расположено "TreeView". Node_1 -- Node_1_1 -- Node_1_2 Node_2 -- Node_2_1 -- Node_2_2 Сеанс 1 Открываем...

Сохранить состояние формы в файл
нужно сохранить форму напирмер в файл LOL.ini чтобы если закроешь прогу у тебя все сохранилось в этот файл!и при открытии все востановилось...

Возможно ли как то вернуть все значения формы в первоначальное состояние?
Возможно ли как то вернуть все значения формы в первоначальное состояние? т. е. Есть объекты на форме в них остаются значения... форма...

4
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
19.06.2022, 23:41
Лучший ответ Сообщение было отмечено sea1 как решение

Решение

Цитата Сообщение от sea1 Посмотреть сообщение
Как мне сделать так, чтобы после закрытия программы и открытия её вновь на этой форме остался созданный pictureBox?
Добавьте в программу класс состояния, который загружайте при старте формы и сохраняйте при закрытии. При нажатии на кнопку записывайте в это состояние флаг наличия PictureBox.
1
0 / 0 / 0
Регистрация: 19.06.2022
Сообщений: 3
20.06.2022, 13:31  [ТС]
Если не сложно, можете написать пример кода этого класса состояний, потому что с флагами не работал и не особо знаю что это такое. Если не напишите, ничего страшного, спасибо большое за пояснение, хоть будет что сказать на защите диплома, если спросят как сохранял состояние формы)
0
2393 / 1920 / 763
Регистрация: 27.07.2012
Сообщений: 5,560
20.06.2022, 14:24
Лучший ответ Сообщение было отмечено sea1 как решение

Решение

Цитата Сообщение от sea1 Посмотреть сообщение
Если не сложно, можете написать пример кода этого класса состояний
Целый класс писать откровенно лень. У вас уже есть некоторое "состояние", заключённое в количестве картикок: i. Можно его и использовать.

C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
            this.Load += Form1_Load;
            this.Closing += Form1_Closing;
        }
 
        private PictureBox picture = new PictureBox();
        public int i = 0;
        private string config = "config.txt";
 
        private void button1_Click(object sender, EventArgs e)
        {
            AddPictureBox(i);
            i++;
        }
 
        private void AddPictureBox(int index)
        {
            PictureBox picture = new PictureBox();
 
            this.SuspendLayout();
 
            picture.Location = new Point(160 * index, 130);
            picture.Size = new Size(100, 100);
            picture.BackColor = new Color();
            picture.Image = Properties.Resources._1;
 
            this.Controls.Add(picture);
            this.ResumeLayout();
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            if (File.Exists(config))
            {
                int.TryParse(new StreamReader(config).ReadLine(), ref i);
            }
            for (int j = 0; j < i; ++j)
                AddPictureBox(j);
        }
 
        private void Form1_Closing(object sender, EventArgs e)
        {
            new StreamWriter(config).WriteLine(i);
        }
    }
1
0 / 0 / 0
Регистрация: 19.06.2022
Сообщений: 3
20.06.2022, 15:32  [ТС]
Выражаю огромную благодарность, очень выручили!
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.06.2022, 15:32
Помогаю со студенческими работами здесь

Как сохранить элементы формы в картинку?
На форме находится PictureBox, а на нем куча элементов, как это сохранить в файл-картинку

Как сохранить все данные с формы в Excel (не используя датагрид)?
всем доброго дня. Создал обчыное приложение winForm. Добавил там текстбоксы... Вопрос возможно ли как нибудь сохранить в экзеле то что...

Как в Excel при SaveAs программно удалить все процедуры VBA и формы?
Как в Excel при SaveAs программно удалить все процедуры VBA и формы, т.е. сохранить только листы книги?

Нужна программа, что бы сохранить состояние пк или приложений, т.е. все открытые на текущий момент приложения
Люблю по старой памяти поиграть во всякие флэш игры, но часта проблема, что я могу начать, пройти какую то часть, сохранений нет,а идти...

Как сохранить состояние
Пытаюсь сохранить состояние переменной. Так как при повороте экрана значение исчезает. Сделал так package...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
5
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 11.02.2026
Содержание блога Библиотека SDL3 содержит встроенные инструменты для базовой работы с изображениями - без использования библиотеки SDL3_image. Пошагово создадим проект для загрузки изображения. . .
SDL3 для Web (WebAssembly): Загрузка PNG с прозрачным фоном с помощью SDL3_image
8Observer8 10.02.2026
Содержание блога Библиотека SDL3_image содержит инструменты для расширенной работы с изображениями. Пошагово создадим проект для загрузки изображения формата PNG с альфа-каналом (с прозрачным. . .
Установка Qt-версии Lazarus IDE в Debian Trixie Xfce
volvo 10.02.2026
В общем, достали меня глюки IDE Лазаруса, собранной с использованием набора виджетов Gtk2 (конкретно: если набирать текст в редакторе и вызвать подсказку через Ctrl+Space, то после закрытия окошка. . .
SDL3 для Web (WebAssembly): Работа со звуком через SDL3_mixer
8Observer8 08.02.2026
Содержание блога Пошагово создадим проект для загрузки звукового файла и воспроизведения звука с помощью библиотеки SDL3_mixer. Звук будет воспроизводиться по клику мышки по холсту на Desktop и по. . .
SDL3 для Web (WebAssembly): Основы отладки веб-приложений на SDL3 по USB и Wi-Fi, запущенных в браузере мобильных устройств
8Observer8 07.02.2026
Содержание блога Браузер Chrome имеет средства для отладки мобильных веб-приложений по USB. В этой пошаговой инструкции ограничимся работой с консолью. Вывод в консоль - это часть процесса. . .
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru