Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск  
 
 
Рейтинг 4.87/106: Рейтинг темы: голосов - 106, средняя оценка - 4.87
10 / 10 / 4
Регистрация: 05.08.2009
Сообщений: 101

Где хранить настройки программы (свойства формы и её компонентов)

06.08.2009, 15:44. Показов 21784. Ответов 50
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Уважаемые, мне необходимо где-то хранить настройки программы (например, если пользователь не хочет видеть статусную панель и её отключил через меню, то при запуске формы она не должна быть показана). Я слышал, что для хранения подобных настроек можно использовать файл settings, файл конфигурации, ini-файл, txt-файл, реестр, но один знакомый прогер посоветовал мне использовать XML, дескать, если C#, то C# + XML = мегабомба. Может кто помочь с сериализацией.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
06.08.2009, 15:44
Ответы с готовыми решениями:

Где хранить настройки программы
Собственно, вопрос в названии. Пишу программу, в которой много настроек, как зашифрованных, так и нет. Сейчас встал вопрос: "Где...

В чём правильно хранить настройки динамически созданных компонентов
Нужно запомнить такую структуру . Есть не ограниченное количества панелей они могут добавляться , удаляться , изменяться и в каждой из них...

Где лучше хранить настройки?
Мне нужно сохранить в основном цвета. Допустим я задел цвет линиям красный, фон черный и так далее. Потом после нового запуска программы...

50
 Аватар для dimasamchenko
336 / 269 / 21
Регистрация: 30.03.2009
Сообщений: 500
14.01.2010, 19:22
Студворк — интернет-сервис помощи студентам
Спасибо, это я и подозревал!

Добавлено через 5 минут
Цитата Сообщение от FreeWay Посмотреть сообщение
а разве он там (вместе с экзешником) не формируеться???
Может ты CurrentDirectory меняешь?
нет не меняю!
Лакшми подсказала ответ.
Интересно а можно все-таки нагло заставить сохраняться в папке с файлом программы,
для User как для Application???
Желаю всем удачи!
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
14.01.2010, 19:53
Если бы я знала способ нагло сохранять User-настройки куда мне надо, я бы от него не отказалась. А так - кто его знает куда он делся и почему у меня больше не создается. Не нравится мне такая неуправляемость.
0
 Аватар для FreeWay
84 / 84 / 19
Регистрация: 17.12.2007
Сообщений: 574
14.01.2010, 22:10
Лучший ответ Сообщение было отмечено как решение

Решение

Цитата Сообщение от Лакшми Посмотреть сообщение
Если бы я знала способ нагло сохранять User-настройки куда мне надо, я бы от него не отказалась. А так - кто его знает куда он делся и почему у меня больше не создается. Не нравится мне такая неуправляемость.
это управляемость, но управляемость управляемаяребятами с майкрософа

Добавлено через 11 минут
вот еще хороший способ, хотя кажется сложным

http://rsdn.ru/article/dotnet/dnetappcfg.xm
3
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
15.01.2010, 07:20
Там ошибка 404...
0
 Аватар для dimasamchenko
336 / 269 / 21
Регистрация: 30.03.2009
Сообщений: 500
15.01.2010, 10:14
Цитата Сообщение от Лакшми Посмотреть сообщение
Там ошибка 404...
Доброго дня Всем!
Надо вот так- http://rsdn.ru/article/dotnet/dnetappcfg.xml
Благодарность FreeWay!
Читаю, разбираюсь....
будут результаты напишу.
Всем Удачи. До встречи.
0
 Аватар для FreeWay
84 / 84 / 19
Регистрация: 17.12.2007
Сообщений: 574
15.01.2010, 11:38
Цитата Сообщение от dimasamchenko Посмотреть сообщение
Доброго дня Всем!
Надо вот так- http://rsdn.ru/article/dotnet/dnetappcfg.xml
Благодарность FreeWay!
Читаю, разбираюсь....
будут результаты напишу.
Всем Удачи. До встречи.
сериализация вообще работает на автомате, щас нет времени разбираться, я уже завязался хранить настройки руцями в xml
Как разберешься напиши ньансы, плюсы, минусы, стоит/нестоит
0
13 / 13 / 2
Регистрация: 01.12.2009
Сообщений: 37
18.01.2010, 19:39
Сериализация покрасивей,чем .txt
C#
1
2
3
4
5
6
7
8
namespace Config                     
{
    public class Configure                  //класс сохранения настроек в xml
    {
        private string Pub_tbox;      
        public string tbox { get; set; }
}
}
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
using System.IO;
using System.Xml;
using System.Xml.Serialization;
using Config;         //если в отдельном файле обязательно
 
public void conf_load(string nastr)
        {
            FileInfo f = new FileInfo(nastr);
            if(f.Exists)
            {
                FileStream stream = new FileStream(nastr, FileMode.Open, FileAccess.Read);
                XmlSerializer xs = new XmlSerializer(typeof(Configure));
                Configure conf = (Configure)xs.Deserialize(stream);
                textBox1.Text = conf.tbox;             
                stream.Close();
            }
         }
       public void conf_save(string nastr)
         {
            Configure conf = new Configure();   
            conf.tbox = textBox1.Text;
            XmlTextWriter writer = new XmlTextWriter(nastr, Encoding.UTF8);
            XmlSerializer xs = new XmlSerializer(typeof(Configure));
            xs.Serialize(writer, conf); 
            writer.Close();
         }
       #endregion
       private void Form1_Load(object sender, EventArgs e)
        {
            conf_load(@"C:\file.xml");
        }
       private void Form1_FormClosed(object sender, FormClosedEventArgs e)
        {
            conf_save(@"C:\file.xml");
        }
1
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
15.07.2010, 18:23
Возвращаясь к нашим баранам... Нужна помощь по сохранению настроек в файл конфигурации.
Не хотела я этот файл настроек использовать, навязали, теперь расхлебываю...

В файле конфигурации у меня хранятся 3 значения: две строки подключения и один параметр типа int. Со строками подключения вроде разобралась, сохраняются, а вот обычный int-овский параметр ну хоть убей никак не дается!

Вот что у меня в файле конфигурации:
XML
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
<?xml version="1.0"?>
<configuration>
    <configSections>
        <sectionGroup name="userSettings" type="System.Configuration.UserSettingsGroup, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" >
            <section name="ExportDB.Properties.Settings" type="System.Configuration.ClientSettingsSection, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" allowExeDefinition="MachineToLocalUser" requirePermission="false" />
        </sectionGroup>
    </configSections>
    <connectionStrings>
        <add name="ExportDB.Properties.Settings.ConnectionStringDBFirst"
            connectionString="Data Source=pavel\ent;Initial Catalog=First;User ID=sa"
            providerName="System.Data.SqlClient" />
        <add name="ExportDB.Properties.Settings.ConnectionStringDBSecond"
            connectionString="Data Source=pavel\ent;Initial Catalog=Second;User ID=sa"
            providerName="System.Data.SqlClient" />
    </connectionStrings>
    <userSettings>
        <ExportDB.Properties.Settings>
            <setting name="StOperID" serializeAs="String">
                <value>1</value>
            </setting>
        </ExportDB.Properties.Settings>
    </userSettings>
</configuration>
Вообще настораживает то, что про этот параметр написано
XML
1
serializeAs="String"
хотя в дизайнере стоит int.
А вот так я записываю новые значения:
C#
1
2
3
4
5
6
7
8
9
10
11
System.Configuration.Configuration configFile = ConfigurationManager.
    OpenExeConfiguration(ConfigurationUserLevel.None);
if (configFile.HasFile)
{
    ExportDB.Properties.Settings.Default.StOperID = Convert.ToInt32(textEditCodeStOper.Text);
    ExportDB.Properties.Settings.Default.Save();
 
    configFile.ConnectionStrings.ConnectionStrings[1].ConnectionString = conStrFirst;
    configFile.ConnectionStrings.ConnectionStrings[2].ConnectionString = conStrSecond;
    configFile.Save(ConfigurationSaveMode.Modified);
}
В итоге строки подключения сохраняются, а параметр StOperID ни в какую!
Есть какая-нибудь возможность считать этот параметр так же как и строки подключения - через специальные секции? Как я только не пробовала - целый день убила на это! В итоге решила что самый простой способ - записать значение в лоб, но и в лоб что-то не получается...

Пожалуйста, подскажите, что не так?

Заранее благодарна за помощь!
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
15.07.2010, 20:48
Еще не разбирался, но нельзя ли просто забить на инт, преобразовать число в строку и сохранять как стринг. А потом обратно. Понимаю, что больше места будет кушать, но на байты.
0
 Аватар для Лакшми
61 / 50 / 1
Регистрация: 09.07.2009
Сообщений: 451
15.07.2010, 20:50
А какая разница какой тип? Пускай даже стринг будет, или дататайм, а толку-то?
0
 Аватар для body90
467 / 344 / 19
Регистрация: 26.05.2009
Сообщений: 2,696
15.07.2010, 20:54
И вообще, последнее время, стал сохранять может и некрасиво, но по своему и мне удобнее.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
15.07.2010, 20:54

Где хранить иконки для компонентов?
Хочу научить компонент прорисовывать иконки. Если упаковать его в jar, как их сохранить??

Как и где хранить настройки приложения
Есть WIN приложение, есть возможность указать в нем некоторые опции. Как обычно поступают? Создают класс опций а потом обращаются к...

Где в UWP хранить настройки приложения?
В WPF есть Setting.setting а в UWP нету в Properties

Где лучше хранить сведения о параметрах компонентов?
Разрабатывается IDE. Вопрос: сведения о параметрах компонентов лучше хранить в XML файле или разработать для этого иерархию классов, или и...

Где лучше всего хранить настройки приложения
Доброго времени суток. Пишу программу на Windows Forms. Нужно сохранять некие настройки программы. База работает с БД Access, но туда...


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

Или воспользуйтесь поиском по форуму:
51
Ответ Создать тему
Новые блоги и статьи
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
Оттачиваю умение писать js программы.
russiannick 30.08.2026
Проектом выходного дня стало написание Книги шифров Виженера. Итогом стала версия 200, синий туман. Синий туман назван так, потому что замораживает текст под собой. Нажатие синих кнопок управляют. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru