C # постоянные данные между двумя winforms - PullRequest
0 голосов
/ 02 ноября 2011

Мне пока не удалось найти решение моей проблемы. У меня есть две формы win, Main и Configuration Settings. Доступ к форме настроек конфигурации можно получить из меню главной формы.

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

Настройки конфигурации в основном имеют два поля ввода и кнопку ОК.

Как я могу это реализовать?

Ответы [ 2 ]

2 голосов
/ 02 ноября 2011

В целях конфигурации вы можете использовать шаблон синглтона для хранения данных конфигурации.

class ConfigurationStorage{
      private static ConfigurationStorage _instance;

      // settng example - ConnectionString    
      public string ConnectionString {get;set;}

      public static ConfigurationStorage GetInstance(){
          return _instance ?? (_instance =  new ConfigurationStorage());
      }
}

В форме конфигурации вы можете сделать:

ConfigurationStorage.GetInstance().ConnectionString  = "buu";

для хранения данных и то же самое в MainФорма для его извлечения (потому что это тот же объект)

Также вы можете использовать свойство «Родитель формы» для установки расширений настроек в MainForm.

0 голосов
/ 02 ноября 2011

У вас есть много вариантов. Например:

  • Вы можете хранить самые последние сериализованные данные конфигурации на жестком диске. диск \ БД (используя некоторый временный файл).
  • Вы можете передать последний определенный конфиг в качестве параметра конструктора (и верните его в форму вызова при закрытии).
  • Вы можете отменить событие закрытия формы и скрыть его, а когда вы пытаетесь открыть его снова, вместо этого вы делаете его видимым.
  • Вы можете использовать синглетон (как сказал @Kamil)

Когда дело доходит до окон конфигурации, я хотел бы либо сохранить их данные на диске \ DB, либо передать их начальное состояние конструктору.

...