Модераторы: Partizan, gambit

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> В чем хранить натсройки программы. Что бы был доступ 
:(
    Опции темы
Pankon
Дата 23.6.2006, 16:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 739
Регистрация: 2.6.2005

Репутация: 3
Всего: 5



Цитата(Хоббит @  23.6.2006,  13:39 Найти цитируемый пост)
а изменять их как... например надо хранить адресс сервера БД  

1. Создаешь в проекте новую "установку" (Проект -> Свойства....)
Напимер - "BaseAddr"
2. В программе 
 - для чтения: strAddr = My.Settings.BaseAddr
 - для сохранения My.Settings.BaseAddr= "121.123.233.233"

Все.


Неприятность
Работает только для виндовсприложения, для консоли - нет  smile 
По крайней мере я не смог заставить консоль сохранять результаты.... Консоль вообще не создает файл настроек... smile 

 
PM MAIL   Вверх
Хоббит
Дата 23.6.2006, 17:55 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



Как бы не было смешно, но ничего не работает. Создаю проект. Выбираю в идзайнере форму. В свойсвах ApplicationSetings там PropertyBinding даю имя .. все появляется... запускаю меняю размеры, перезапускаю, все по прежнему...
В свойствах есть ... жму на Синхронизировать no user.config file found

Добавлено @ 17:56 
и что за обьет My в строчке My.Settings. ... 
PM MAIL   Вверх
mr.DUDA
Дата 23.6.2006, 17:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Хоббит @  23.6.2006,  17:55 Найти цитируемый пост)
и что за обьет My в строчке My.Settings. ... 

Это в ихнем бейсике есть такой хитрый фич, "My namespace" называется  smile 

Цитата(Хоббит @  23.6.2006,  17:55 Найти цитируемый пост)
Как бы не было смешно, но ничего не работает. Создаю проект. Выбираю в идзайнере форму. В свойсвах ApplicationSetings там PropertyBinding даю имя .. все появляется... запускаю меняю размеры, перезапускаю, все по прежнему...
В свойствах есть ... жму на Синхронизировать no user.config file found

То же что и у меня ? 


--------------------
user posted image
PM MAIL WWW   Вверх
ivashkanet
Дата 23.6.2006, 20:10 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



На VB действительно все пашет. А на C# нет.
Дальше больше. Залез я в дизайнер сеттингов и нашел охриненный метод:
Код

#Region "My.Settings Auto-Save Functionality"
#If _MyType = "WindowsForms" Then
        Private Shared addedHandler As Boolean

        Private Shared addedHandlerLockObject As New Object

        <Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), Global.System.ComponentModel.EditorBrowsableAttribute(Global.System.ComponentModel.EditorBrowsableState.Advanced)> _
        Private Shared Sub AutoSaveSettings(ByVal sender As Global.System.Object, ByVal e As Global.System.EventArgs)
            If My.Application.SaveMySettingsOnExit Then
                My.Settings.Save()
            End If
        End Sub
#End If
#End Region

Который, судя по названию, сохраняет изменения сэттингов в... а хрен знает куда он их сохраняет. Потому что даже без файла app.config приложение запоминает свое предыдущее расположение. 
В C# такого нет  smile Залез я в дизайнер для шарпа, а там (о ужас) даже Set-тера не предусмотренно  smile Решил я его туда добавить, а заодно добавил и this.save()
Код

            set {
                this["FormLocation"] = value;
                this.Save();
            }

И... нифига. Код сеттера отрабатывает, но форма своего положения не помнит smile 
P.S. Прикрепляю приложение VB которое умеет сохранять свое положение на экране.  

Это сообщение отредактировал(а) ivashkanet - 23.6.2006, 20:17

Присоединённый файл ( Кол-во скачиваний: 17 )
Присоединённый файл  waTestvb.exe.txt 28,00 Kb
PM MAIL WWW ICQ   Вверх
mr.DUDA
Дата 23.6.2006, 22:40 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Короче, не продумали до конца, либо нужно где-то дёргать какой-то метод SaveSettings smile

P.S. не могли уж в деструктор запихать это всё, я не знаю  smile  


--------------------
user posted image
PM MAIL WWW   Вверх
Хоббит
Дата 24.6.2006, 09:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



а может в C# надо еще что то ручками дописать ..... если на класс Settings посмотреть так в нем ничего ... пару коментарирве только стоит


Код

namespace ToolStripTest.Properties {
    
    
    // This class allows you to handle specific events on the settings class:
    //  The SettingChanging event is raised before a setting's value is changed.
    //  The PropertyChanged event is raised after a setting's value is changed.
    //  The SettingsLoaded event is raised after the setting values are loaded.
    //  The SettingsSaving event is raised before the setting values are saved.
    internal sealed partial class Settings {
        
        public Settings() {
            // // To add event handlers for saving and changing settings, uncomment the lines below:
            //
            // this.SettingChanging += this.SettingChangingEventHandler;
            //
            // this.SettingsSaving += this.SettingsSavingEventHandler;
            //
        }
        
        private void SettingChangingEventHandler(object sender, System.Configuration.SettingChangingEventArgs e) {
            // Add code to handle the SettingChangingEvent event here.
        }
        
        private void SettingsSavingEventHandler(object sender, System.ComponentModel.CancelEventArgs e) {
            // Add code to handle the SettingsSaving event here.
        }
    }
}


вот тут то кажется и надо все делать!!!

Добавлено @ 09:12 
Какой я умный... вот и решил проблемы...
раскоментариваем обработчик SettingsChanging и в нем пишем this.Save()
и все работает под C#
 на самом деле все просто 
PM MAIL   Вверх
mr.DUDA
Дата 24.6.2006, 15:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Хоббит @  24.6.2006,  09:00 Найти цитируемый пост)
раскоментариваем обработчик SettingsChanging и в нем пишем this.Save()

будешь сохранять в файл при каждом изменении каждой настройки ?  smile  


--------------------
user posted image
PM MAIL WWW   Вверх
Хоббит
Дата 24.6.2006, 17:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



ну на произвводительность не влияет ... а хочешь по закрытию пропиши сохранение и все smilesmilesmile 
PM MAIL   Вверх
ivashkanet
Дата 26.6.2006, 08:04 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(Хоббит @  24.6.2006,  09:00 Найти цитируемый пост)
Какой я умный... вот и решил проблемы...
раскоментариваем обработчик SettingsChanging и в нем пишем this.Save()
и все работает под C#
 на самом деле все просто 

А у меня не работало  smile 
Что я делал не так smile  
PM MAIL WWW ICQ   Вверх
Хоббит
Дата 26.6.2006, 09:22 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1263
Регистрация: 6.11.2005

Репутация: нет
Всего: 1



не знаю ... 2 действия расокмнетарить событие (оно в коментариях) и дописать в обработчик строку this.Save() примитивный вариант ...
Можно по закрытию формы. отдельно вызвать Settings.Save(); 
PM MAIL   Вверх
ivashkanet
Дата 24.10.2006, 13:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Кодю потиху
****


Профиль
Группа: Участник Клуба
Сообщений: 3684
Регистрация: 23.2.2006
Где: Гомель, Беларусь

Репутация: 47
Всего: 149



Цитата(ivashkanet @  23.6.2006,  20:10 Найти цитируемый пост)
На VB действительно все пашет. А на C# нет.

Я сегодня нашел почему smile

В свойствах VB проекта есть зампенчательная галка, дословно: "Save My.Settings on Shutdown"
Во какая суперфича  smile 

Т.е. с C# проекте нужно сохранять их руками smile
PM MAIL WWW ICQ   Вверх
Rapalex
Дата 24.10.2006, 14:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 732
Регистрация: 20.1.2006
Где: Украина -> Ник олаев

Репутация: 2
Всего: 8



Длинный форум я так просмотрел, и не видел у вас такой ссылки, а вы посмотрите!!!
How to Use Settings in Visual C# 2005 


--------------------
In vitium ducit culpae fuga.
Желание избежать ошибки вовлекает в другую.
(Horatius)
PM ICQ   Вверх
Elfet
Дата 9.7.2007, 21:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Белый и Пушистый
****


Профиль
Группа: Awaiting Authorisation
Сообщений: 3776
Регистрация: 2.4.2003

Репутация: нет
Всего: 16



А если я не хочу хранить настройки программы в папке там где и находится программа, а в какой-нибудь другой папке скрытой от пользователей, но всём доступной?


--------------------
PM MAIL WWW Skype   Вверх
mr.DUDA
Дата 9.7.2007, 23:06 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


3D-маньяк
****


Профиль
Группа: Экс. модератор
Сообщений: 8244
Регистрация: 27.7.2003
Где: город-герой Минск

Репутация: 110
Всего: 232



Цитата(Elfet @  9.7.2007,  21:42 Найти цитируемый пост)
А если я не хочу хранить настройки программы в папке там где и находится программа, а в какой-нибудь другой папке скрытой от пользователей, но всём доступной?

Тогда ручками сохраняй/читай файл откуда угодно в своём собственном формате.


--------------------
user posted image
PM MAIL WWW   Вверх
Azzdorf
  Дата 9.7.2007, 23:16 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 190
Регистрация: 29.3.2007

Репутация: нет
Всего: нет



Цитата(mr.DUDA @ 9.7.2007,  23:06)
Тогда ручками сохраняй/читай файл откуда угодно в своём собственном формате.

тут сериализация подойдет, там можна настройки как захочеш запихнуть, я например привращаю их в пару-значение, или пару - 10 значений и использую те которые нужно, притом в этом файле попрописую после каждого открытия откуда последний раз открывался файл конфигцрации и если его не перемещать то програма в начале не бедт создавать файл из стандартными настройками, если кому надо выложу исходник...
--------------------
Иногда шаг вперед - это результат хорошего пинка под зад.
PM MAIL   Вверх
Страницы: (3) Все 1 [2] 3 
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

Используйте теги [code=csharp][/code] для подсветки кода. Используйтe чекбокс "транслит" если у Вас нет русских шрифтов.
Что делать если Вам помогли, но отблагодарить помощника плюсом в репутацию Вы не можете(не хватает сообщений)? Пишите сюда, или отправляйте репорт. Поставим :)
Так же не забывайте отмечать свой вопрос решенным, если он таковым является :)


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, mr.DUDA, THandle.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Общие вопросы по .NET и C# | Следующая тема »


 




[ Время генерации скрипта: 0.1148 ]   [ Использовано запросов: 21 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.