Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
70 / 66 / 47
Регистрация: 02.12.2015
Сообщений: 822
Записей в блоге: 1
1

Где лучше хранить настройки?

12.02.2017, 22:03. Показов 2732. Ответов 10
Метки нет (Все метки)

Мне нужно сохранить в основном цвета. Допустим я задел цвет линиям красный, фон черный и так далее. Потом после нового запуска программы эти настройки (цвета) должны сохранятся.Где их лучше хранить в файле реестре? Если в файлах, то каких именно и как?
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
12.02.2017, 22:03
Ответы с готовыми решениями:

Как лучше хранить данные приложения, например, настройки
Здравствуйте. Прошу вашего совета: Разрабатываю приложение на c# (Windows Forms). Суть...

Где хранить настройки программы (свойства формы и её компонентов)
Уважаемые, мне необходимо где-то хранить настройки программы (например, если пользователь не хочет...

Можно ли хранить настройки внутри *.ехе
Если кто может накидайте пример записи (ну и чтения) некой инфы в ехе. Спрашивать зачем ненадо. Ну...

Куда лучше хранить БД
Всем привет, в Делфи я пользовался LocalSQL и по сути "фокпрошными" db файликами, со всеми...

10
Модератор
Эксперт .NET
5724 / 4625 / 2916
Регистрация: 20.04.2015
Сообщений: 8,265
12.02.2017, 22:34 2
Лучший ответ Сообщение было отмечено aleksskay4 как решение

Решение

aleksskay4,
Самый простой вариант - использование Properties.Settings.
В окне проекта откройте Properties и двойным щелчком зайдите в Settings.
Добавьте количество настройек, указывая имя, тип и начальное значение.
Для хранения цветов это будут, например, настройки с именами color1 и color2.
Тип - System.Drawing.Color. Начальные значения Red и Green.
Читать и использовать настройки в программе можно, например, так:
C#
1
2
panel1.BackColor = Properties.Settings.Default.color1;
richTextBox1.ForeColor = Properties.Settings.Default.color2;
Обратное присваивание тоже работает:
C#
1
Properties.Settings.Default.color1 = Color.Blue;
Значения можно сохранять:
C#
1
Properties.Settings.Default.Save();
Для упорядочивания работы с настройками можно создать класс:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
class Settings
{
    public Color color1 { set; get; }
    public Color color2 { set; get; }
 
    public Settings()
    {
        color1 = Properties.Settings.Default.color1 ;
        color2 = Properties.Settings.Default.color1 ;
    }
 
    public void SaveSettings()
    {
        Properties.Settings.Default.color1 = color1;
        Properties.Settings.Default.color1 = color2;
        Properties.Settings.Default.Save();
    }
}
Использовать как-то так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public partial class Form1 : Form
{
    public Form1()
    {
        InitializeComponent();
    }
    Settings settings; //объявляем поле класса настроек
    private void Form1_Load(object sender, EventArgs e)
    {
        settings = new Settings(); //читаем настройки в конструкторе класса Settings
        panel1.BackColor = settings.color1; //устанавливаем цвета элементам
        richTextBox1.ForeColor = settings.color2;
    }
 
    private void saveSettings_Click(object sender, EventArgs e)
    {
        settings.color1 = Color.Blue; //присваиваем настройкам новые значения
        settings.color2 = Color.Yellow;
        settings.SaveSettings(); //вызываем метод сохранения настроек
    }
 
}
1
70 / 66 / 47
Регистрация: 02.12.2015
Сообщений: 822
Записей в блоге: 1
15.02.2017, 11:17  [ТС] 3
Я считываю цвет из Propertis.Settins.Default.BackColor.
Но у меня возникает проблема. При запуске без отладки один цвет появляется, а при запуске с отладкой другой цвет.
0
127 / 127 / 41
Регистрация: 26.10.2012
Сообщений: 414
15.02.2017, 17:03 4
aleksskay4, предположу, что вы запускаете проект из разных каталогов, следовательно в конфигах разные цвета записаны.
0
70 / 66 / 47
Регистрация: 02.12.2015
Сообщений: 822
Записей в блоге: 1
16.02.2017, 13:16  [ТС] 5
Как это исправить?
0
127 / 127 / 41
Регистрация: 26.10.2012
Сообщений: 414
16.02.2017, 21:04 6
aleksskay4, для начала посмотрите, из каких каталогов вы запускаете проект с отладкой и без отладки. При необходимости ручками поменяйте настройки в app.config
0
70 / 66 / 47
Регистрация: 02.12.2015
Сообщений: 822
Записей в блоге: 1
16.02.2017, 21:09  [ТС] 7
Цитата Сообщение от Павлик Морозов Посмотреть сообщение
ля начала посмотрите, из каких каталогов вы запускаете проект с отладкой и без отладки.
Это где можно узнать?
0
127 / 127 / 41
Регистрация: 26.10.2012
Сообщений: 414
16.02.2017, 22:24 8
aleksskay4, в обозревателе проектов щелкаете правой кнопкой мыши по вашему проекту, в контекстном меню выбирайте "Показать в проводнике". Откроется проводник в каталоге, где ваш проект расположен. там будет подкаталог bin, в нем 2 каталога debug и release, в них скомпиленые проекты отладочной и релизной версии. Там и посмотрите, что в конфиг файлах прописано.
0
70 / 66 / 47
Регистрация: 02.12.2015
Сообщений: 822
Записей в блоге: 1
17.02.2017, 10:15  [ТС] 9
Папка Release пустая
0
4699 / 3243 / 1375
Регистрация: 09.05.2015
Сообщений: 7,952
17.02.2017, 10:23 10
В отладке запускается другой процесс с названием "что-то-там.vshost.exe", а т.к. конфиг привязан к пути процесса, он имеет отличные настройки от "что-то-там.exe". Возможно отключение Visual Studio Host Process как-то изменит ситуацию.
0
70 / 66 / 47
Регистрация: 02.12.2015
Сообщений: 822
Записей в блоге: 1
17.02.2017, 10:35  [ТС] 11
Someone007, как отключить?
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.02.2017, 10:35

Заказываю контрольные, курсовые, дипломные работы и диссертации здесь.

Как лучше хранить данные вида ключ - значение?
Программа должна работать с примерно 1000 записей вида ключ - значение, где ключ это что-то вроде...

Как лучше всего хранить двумерный массив переменного размера
Здравствуйте! Мне нужно хранить квадратный массив, размер которого может увеличиваться, но он...

Игровой автомат, как лучше хранить картинки для последующего вывода в PictureBox
Всем привет! Задача такая: сделать некое подобие игрового автомата. 3 элемента picturebox, при...

Где хранить ключи в .NET - приложениях?
Здравствуйте. Хоть взломом приложений и не занимался никогда, но подозреваю, что мало-мальски...


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2021, vBulletin Solutions, Inc.