У меня есть приложение, сделанное в winform с использованием C ++ (разработано в VS 2010). Графические интерфейсы имеют определенные текстовые поля, переключатели, флажки и т. Д. Для работы с программным обеспечением необходимо заполнить эти поля / кнопки / поля и т. Д.
Есть примерно 50 таких графических интерфейсов, каждый из которых содержит около 20 полей.
Я хочу, чтобы после закрытия и перезапуска приложения последние параметры в этих полях автоматически заполнялись, поэтому пользователю не нужно повторно вводить все эти значения снова.
Какой самый простой и простой способ добиться этого?
Это лучше всего решить, используя шаблон MVC, где Модель содержит данные, которые были заполнены. Представление содержит способ его представления (например, в Winforms) И, наконец, контроллер, который помимо выполнения бизнес-логики должен будет выполнить некоторую работу (для сохранения состояния).
Я предпочитаю использовать сериализацию для этого. Вы можете сериализовать поля модели и прочитать их обратно (поля, которые необходимы только).
Если вам не нравится сериализация, вы можете попробовать записать в INI-файлы, которые легко изменить.
В-третьих, вы можете использовать базу данных mdf
файл для хранения состояния.
Но чтобы сделать все это хорошо, вам нужно будет изменить приложение для использования архитектуры MVC.
Вы можете использовать реестр Windows с
WindowsFormName (подраздел)
———> ControlName (подраздел)
——————> ControlValue (подраздел)
Когда форма закрывается, вы сохраняете значения для каждого элемента управления в реестре.
Когда форма загружается, вы читаете значения
Если вас устраивает быстрое и грязное решение, вы можете попробовать это:
Реализуйте механизм сохранения:
Реализуйте механизм загрузки. Предполагается, что между значениями нет никаких зависимостей (если есть автоматически вычисляемые поля, не сохраняйте их)
После реализации этот подход можно использовать для всех форм, и он будет справляться с добавлением / удалением элементов управления. Однако, если существуют бизнес-правила, возможно, лучше использовать подход MVC и сериализовать модель.