Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Общие вопросы по .NET и C# > System.Configuration


Автор: kulibin 23.12.2007, 21:46
Я с наскоку темы этой не понял - и поэтому пользую ини-файлы. Никак не могу понять, как с  System.Configuration можно сделать допустим такое вот: у меня туева хуча форм с гридами. Я естественно сохраняю ширину столбцов. Формы ети в извращённой очень форме создаются полностью из кода. Ну и вообще фактически то форма одна - но с помощью хитрых манёвров она оч по разному отображается с разными гридами - естественно с разным набором столбцов. С ини я в цикле сохраняю столбцы - оч просто и легко. А с конфигурацией то как это сделать? чтоли под каждый столбец каждого грида создавать сеттнгс свой?! это ж года может не хватить . . . Может можно там както наподобие как и ини? типа позднее привязывание какое-то чтоли... или простое создание в коде конфигурации с переменным количеством и качеством сеттингсов? Поделитесь плз идеями. Вроде как мне кажется что типа круче  System.Configuration чем ини - но никак не могу понять как такие моменты на нём реализовать - а вроде как же ш в ногу со временем надо идтить smile

Автор: thomas 23.12.2007, 22:33
kulibin
Привет.
Посмотри http://msdn2.microsoft.com/en-us/library/ms379611(vs.80).aspx или http://msdn2.microsoft.com/en-us/library/aa730869(VS.80).aspx
А так же посмотри http://www.codeproject.com/KB/vb/using_propertygrid.aspx и пройдись там по поиску, были примеры как запоминать размеры окон при закрытии программы и воспроизводить их при открытии.

Settings самый подходящий вариант. Для каждого пользователя свои настройки сохраняются в файл user.config.

Успехов.  smile 

Автор: izekia 23.12.2007, 23:30
как раз заменяю
вот по теме, что непонятно будет - спрашивай, но там вроде все подробно
http://www.rsdn.ru/article/dotnet/ClientSettingsFAQ.xml

Они очень удобно на контролы биндятся

Автор: kulibin 24.12.2007, 01:18
Цитата(thomas @ 23.12.2007,  22:33)


Цитата

Посмотри http://msdn2.microsoft.com/en-us/library/ms379611(vs.80).aspx или http://msdn2.microsoft.com/en-us/library/aa730869(VS.80).aspx


это всё я более-менее както прочёл и переварил. Там получается всё это замечательно и просто если допустим запоминать для одной формы настройку одну - допустим размеры. Создаётся класс сеттингс get/set и биндится к нему свойство. всё это здорово конечно - но вот как же быть в таких случаях:
1. сохранение ширины столбцов МНОГИХ РАЗНЫХ гридов - при этом сами гриды и их формы создаются в коде - без дизяйнера. Сейчас я это через ини делаю - класс там имеется, который методами GetIni/SetIni пишет/читает настройку из ини-файла. 
foreach(Grid.Column c in grid.columns){SetIni("form1_grid2",c.ColumnName,c.Width);}//как-то так
Не создавать же мне на каждый такой столбец каждого грида свой сеттингс - объём работы тут просто огромный будет :(.
2. Там у меня форм дофига - и у них стандартные всякие сохраняемые настройки. И их вычитывание/сохранение в базовом классе реализовано. Когда создаётся его потомок там в нём уже делать на эту тему не нужно ничего - всё делается базовым классом - и настройки для каждого потомка хранятся отдельно - путь задаётся this.GetType.Name.ToString() - так как-то - точно не помню. Т.е. у каждого потомка уникальное имя типа своё - и свои настройки - точнее свои значения настроек. 
А с сеттингс как же такое сделать? Динамически блин чтоли генерить тип настройки через System.Reflection.Emit smile - тоже как-то чересчур экстремально smile

вот такая собственно проблемка :(

Автор: izekia 24.12.2007, 05:08
kulibin, самый простой вариант, который приходит в голову - класс, который применяет сохраненные настройки к определенному контролу

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)