Страницы

Поиск по вопросам

суббота, 11 апреля 2020 г.

Windows Forms: как передать параметры между двумя окнами

#c_sharp #winforms

                    
Есть проблемка. У меня есть Главная форма, где происходит весь процесс програмы.
Но я хочу добавить кнопочку "настройки", при нажатии на которую должна открываться
другая форма, там будут текстбоксы, чекбоксы и т.п. Проблема в том, чтобы эти изменения
сохранялись или передавались в главную форму и служили параметрами для используемых
функций. Кто подскажет, как это реализовать попроще?
    


Ответы

Ответ 1



Если очень просто... 1) Сделайте классик, который будет содержать настройки: public class Settings { public string StringSetting { get; set; } public int IntSetting { get; set; } public bool BoolSetting { get; set; } ... } 2) Дальше в форму настроек добавьте свойство с этими настройками, а также два места, где настройки будут считываться и "сохраняться": public class SettingsForm { ... public Settings Settings { get; set; } ... public void OnFormLoad(...) // условное название { textBox.Text = settings.StringSetting; checkBox.Checked = settings.BoolSetting; } public void OnFormClosing(...) // условное название { Settings.StringSetting = textBox.Text, Settings.BoolSetting = checkBox.Checked } } Подсказка: запоминание настроек можно заменить дата байндингом. 3) При вызове формы с настройками устанавливайте ей объект с актуальными настройками: Settings settings = LoadSettings(); using (var frmSettings = new SettingsForm()) { frmSettings.Settings = settings; frmSettings.ShowDialog(); SaveSettings(frmSettings.Settings); } LoadSettings() должен, соответственно, откуда-то считывать настройки, а SaveSettings() -- сохранять. 4) При запуске и выходе из главной формы настройки должны считываться и сохраняться.

Комментариев нет:

Отправить комментарий