![]() |
Модераторы: Partizan, gambit |
![]() ![]() ![]() |
|
Хоббит |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
Настройки храняться в файле. Как организовать класс с данными натсройками, чтобы было красивше.
Сделать статический класс, который будет грузить данные из файла, туда же их сохранять при изменении. + доступ из любой точки - не люблю статические классы Или сделать не статический класс, создавать его элемент. запускать функцию типа Load которая будет грузить настройки программы и работать с ними. |
|||
|
||||
Exception |
|
|||
Эксперт ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 4525 Регистрация: 26.12.2004 Репутация: 29 Всего: 186 |
||||
|
||||
Prehistorik |
|
|||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 146 Регистрация: 30.5.2006 Где: СПб Репутация: 2 Всего: 3 |
Попробуй работать с AppConfig... Там уже всё сделано :-)
--------------------
Есть только один бог - Ассемблер, и С - пророк его. |
|||
|
||||
Хоббит |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
вот те раз... пояните что такое System.Comfgi и AppConfig чем они отличаються...
Мне надо хранить настройки программы типа .размеры окон .рабочая директория .настройки видимости контролов. панелей и.т.д... для удобства работы А также надо хоранить данные проектов, которые программа создает (типа файлов) то есть почти теже настройки что и для программы, только отдельные для каждого файла проекта |
|||
|
||||
Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: 3 Всего: 5 |
Вначале вставь app.config
Проект -> Вставить -> Конфиг. файл А потом смотри System.Configuration.ConfigurationManager.AppSettings Это сообщение отредактировал(а) Pankon - 22.6.2006, 17:02 |
|||
|
||||
mr.DUDA |
|
||||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
ИМХО, не катит, потому что хранить нужно информацию динамически изменяемую приложением:
В таких случаях можно либо воспользоваться средствами .NET 2.0 (вроде, специальные конфиги создаются с доп. расширением ".config.user"), либо создав типизированный датасет, сохранять и загружать из него в XML-файл в директории приложения, а уже в датасете (в виде таблиц с полями) хранить хоть какие угодно настройки. Например, добавить табличку "WindowLayouts" с ключевым полем "FormName" и полями "X", "Y", "Width", "Height", "State" и т.п. Датасет можно запихнуть в статик-класс (или синглтон, как кому больше нравится) и делать Load при первом обращении на чтение, а Save - при выходе из приложения. Тогда прочитать или записать любую настройку обязан уже класс-обёртка датасета, а приложение работает с удобным классом конфигурации. -------------------- ![]() |
||||
|
|||||
Hidrag |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 877 Регистрация: 9.4.2005 Где: JDK Репутация: 2 Всего: 25 |
.... а почему про реестр никто не вспомнил или я чего то не понимаю? Разве там не удобно хранить настройки?
-------------------- ![]() |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
удобно, если только не предполагается copy deployment и наличие настроек по умолчанию -------------------- ![]() |
|||
|
||||
Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: 3 Всего: 5 |
и другие подобние вещи (например, измененный текст в текстбоксе
![]() В дизайнере -> выбрать элемент управления -> Свойства -> Данные -> Установки приложения(ApplicationSettings) -> PropertyBinding -> Вылетает окно (Установки для элемента управления) -> Выбираешь свойство (Size, Text, Location, ...) -> В дропдавн выбираешь нью -> задаешь Name -> Ок Все ![]() Посмотреть все используемые установки Проект -> Свойства -> Установки Здесь, кстати, можно задать уровень "доступа" - Пользователь или Приложение. Студия сама пихает нужные узлы в апп.конфиг (в userSettings) и организует классы для сериализации. ![]() Это сообщение отредактировал(а) Pankon - 23.6.2006, 12:59 |
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
Класс, а я и не знал ![]() |
|||
|
||||
Хоббит |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1263 Регистрация: 6.11.2005 Репутация: нет Всего: 1 |
а изменять их как... например надо хранить адресс сервера БД
|
|||
|
||||
ivashkanet |
|
|||
![]() Кодю потиху ![]() ![]() ![]() ![]() Профиль Группа: Участник Клуба Сообщений: 3684 Регистрация: 23.2.2006 Где: Гомель, Беларусь Репутация: 47 Всего: 149 |
||||
|
||||
Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: 3 Всего: 5 |
Нет
Это я пытался переводить ![]() Это сообщение отредактировал(а) Pankon - 23.6.2006, 13:50 |
|||
|
||||
mr.DUDA |
|
|||
![]() 3D-маньяк ![]() ![]() ![]() ![]() Профиль Группа: Экс. модератор Сообщений: 8244 Регистрация: 27.7.2003 Где: город-герой Минск Репутация: 110 Всего: 232 |
Ага, круто конечно. Только есть неудобства: если таким образом привязать размер формы к settings, то в дизайнере изменить размер не получится - при открытии формы, будут восстанавливаться настройки из settings. Другое неудобство: файл "моё_приложение.user.config" располагается в нескольких местах сразу (вот незадача), но только не в папке с приложением. Например, нажав на кнопку "Synchronize" (в окне редактирования setting-ов), получаю приаттаченный мессадж бокс. Это что же выходит, конфиг для приложения лежит в восьми директориях сразу !
![]() З.Ы. так и не получилось привязать размер/позицию формы к сеттингам - просто ничего не сохраняется, и всё. ![]() З.Ы.(2) а то что сделано руками, будет работать как предполагалось... ![]() Присоединённый файл ( Кол-во скачиваний: 82 ) ![]() -------------------- ![]() |
|||
|
||||
Pankon |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 739 Регистрация: 2.6.2005 Репутация: 3 Всего: 5 |
Согласен.
, что, кстати, показывает, что сеттинги работают..., и именно поэтому и есть кнопочка "Synchronize". странно, у меня он удаляет только из "одной" директории...(но об этом позже)
![]() как я писал выше добираюсь до окна установок.. и выбираю свойство Location (раз уж размер, так и местоположение тоже потестим), даю имя MyLocation(Score-User), нахожу ClientSize, даю имя для "установки" MyClientSize(Score-User). Все. Запускаю... Меняю размер и местоположение.. Закрываю... Снова запускаю - Ура - Новые установки работают. Дизaйнер. Хм... Остались старые размеры... Хочу снова иметь размеры, как в дизайнере ![]() ![]() ![]() Проект -> Свойства -> Установки -> (Сверху кнопочка ) Синхринизировать(нажимаю) -> окно "Удалить один файл где-то в "C:\Do...\Lokale Einstellungen\Anwendungsdaten\...\WindowsApplication1.vshos_Url_vvqvm5ec15fnt2kctiy1x4zdx2w5ervc\1.0.0.0\user.config" Теперь компилирую.. Из каталога (у меня это) \bin\Release\ запускаю WindowsApplication1.exe. Проверяю.. Все работает ![]() А вот после запуска ехе в "C:\Do...\Lokale Einstellungen\Anwendungsdaten\...\ появился новый (что-то такое я уже сверху предпологал(см.выше)) WindowsApplication1.exe_Url_yqe2yhwgoaqgsrrlwbyhvaqxgzec1nox !!!!, где и хранится 1.0.0.0\user.config для экзешника. А если мы теперь скопируем(или перенесем) наш экзешник (конечно с WindowsApplication1.exe.config) в другое место и запустим, то .. правильно.. появится файл установок для нового местоположения "C:\Do...\Lokale Einstellungen\Anwendungsdaten\...\WindowsApplication1.exe_Url_'вероятно хеш местоположения'\версия сборки\user.config" т.е. Один узер может иметь одно приложение и настройки к нему(одни), а если такая же сборка запускается из другого каталога, то это, извините, "другое" приложение. Ну вот и все кажется. ПС. Если бы я это все знал раньше, ![]() ПС. После компиляции, решил еше раз "синхронизировать".. Пришло сообшение об удалении двух(логично) файлов (дебуг и екзе)... сейчас напишу, только "попью" .. |
|||
|
||||
![]() ![]() ![]() |
Прежде чем создать тему, посмотрите сюда: | |
|
Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов. Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :) Так же не забывайте отмечать свой вопрос решенным, если он таковым является :) Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle. |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |