26 / 26 / 11
Регистрация: 08.08.2011
Сообщений: 1,172
1

Сохранить состояние интерфейса из многих элементов

22.05.2014, 15:09. Показов 3387. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Добрый день!

Имеется интерфейс программы с большим количеством элементов: textbox-ы, checkbox'ы, radiobutton'ы и т.д.

Пользователь делает определенные настройки, а потом нужно сохранить "сценарий работы" - то есть все эти настройки запомнить. Чтобы потом, когда пользователь мог вернуться к этим выбранным настройкам.

Так вот, как это сделать в коде без ручного перечисления всех элементов и ручного сохранения настроек в XML-файл?

Т.е. как это сделать максимально автоматически?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
22.05.2014, 15:09
Ответы с готовыми решениями:

Как изменить состояние многих CheckBox на форме в один прием
Товарищи, наверное нубский вопрос, но если у меня есть 25 чекбоксов (0-24 соответственно), то как...

Можно ли при гибернации сохранить состояние нескольких приложений, но при этом не сохранять состояние системы?
можно сохранить состояние нескольких приложений, но при этом не сохранять состояние системы? убил...

MVVM Сохранить состояние страницы
Добрый день. Вот есть у меня в приложении две страницы. На первой страницы у меня заказы, а на...

Как сохранить состояние checkBox-a?
Есть две формы Form1 и Form2 на Form2 есть два checbox, когда я захожу на form2 активировать этот...

8
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
22.05.2014, 15:12 2
ApplicationSettings
0
26 / 26 / 11
Регистрация: 08.08.2011
Сообщений: 1,172
22.05.2014, 15:17  [ТС] 3
Ну да, я и сейчас использую Application.Settings.

Вопрос в том, как сделать так, чтобы все элементы интерфейса запомнили свое состояние автоматически, без перечисления всех этих элементов в коде программы. Т.е. чтобы не нужно было вручную состояние каждого checkbox'а сохранять.
0
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
22.05.2014, 15:22 4
Цитата Сообщение от Suppir Посмотреть сообщение
чтобы не нужно было вручную состояние каждого checkbox'а сохранять.
Эм, создал форму, кинул на неё 6 галочек, настроил для каждой свойство в Application Settings (свойство Checked сохраняю).
На закрытии формы написал следующее:
C#
1
2
3
4
        private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            Settings.Default.Save();
        }
Открываем форму снова, все галочки на месте. Что не нравится?
1
26 / 26 / 11
Регистрация: 08.08.2011
Сообщений: 1,172
22.05.2014, 15:29  [ТС] 5
Там действительно много галочек, также treeview с кучей нодов, где каждый нод - чекбокс.

Я бы хотел добиться следующего. Допустим пользователь настраивает сценарий работы в программе: выбирает нужные чекбоксы, делает нужные настройки, указывает пути и так далее. Затем он можно сохранить этот сценарий в "пресет" настроек. И чтобы можно было сохранять 3 - 4 таких пресета и между ними переключаться. Что думаете?
0
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
22.05.2014, 15:53 6
Цитата Сообщение от Suppir Посмотреть сообщение
И чтобы можно было сохранять 3 - 4 таких пресета и между ними переключаться. Что думаете?
Если хотите, попробуйте взять за основу Microsoft'овский класс ApplicationSettingsBase, который как раз сейчас Вами и используется, но с тем же TreeView он не совладает.

В идеале писать своё. Степень параноидальности сохраняемого вряд ли сильно высокая, перебрать все используемые элементы управления не так сложно, а уж пройтись по дереву всех элементов и того проще.
2
26 / 26 / 11
Регистрация: 08.08.2011
Сообщений: 1,172
22.05.2014, 16:40  [ТС] 7
Spawn,

Фишка в том, что часть элементов treeview генерируется при запуске программы. То есть, есть элементы базовые, а пользователь может "навешивать" дополнительные элементы в treeview. Соответственно, я не знаю изначально, все элементы. А вот их свойства сохранять нужно.
0
995 / 893 / 354
Регистрация: 24.03.2014
Сообщений: 2,381
Записей в блоге: 2
22.05.2014, 16:48 8
Цитата Сообщение от Suppir Посмотреть сообщение
Соответственно, я не знаю изначально, все элементы. А вот их свойства сохранять нужно.
"Опознавательные" признаки явно должны быть какие-то. То, что есть изначально с именем SystemNodeN, где N от 0 и далее, пользовательское соответственно UserDefinedNodeN и сохраняем. При таких условиях только вручную всё делать.
0
26 / 26 / 11
Регистрация: 08.08.2011
Сообщений: 1,172
22.05.2014, 16:58  [ТС] 9
Да, вариант, нужно подумать...
0
22.05.2014, 16:58
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2014, 16:58
Помогаю со студенческими работами здесь

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

Как сохранить состояние страницы?
Добрый день, у меня такой вопрос. У меня есть главная страница с id="home", при нажатии показать...

Как сохранить состояние программы
Программа производит длительные вычисления и параллельно записывает результаты в базу. Как проще...

Сохранить состояние контролов в Silverlight
Имеется Silverlight приложение, которое работает с базой данных. В нем есть несколько контролов...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru