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


Автор: РустамНМ 20.2.2007, 11:30
Добрый день!!!
Хотел узнать... А как можно сделать так, чтобы, например, изменив textBox.Text в проге и выйдя из проги, в следующий раз он открыл с изменениями... Конечно, я могу это реализовать с помощью чтения дополнительного txt файла... Но я не хочу создавать дополнительный к exe файл

Автор: HalkaR 20.2.2007, 11:53
Курим класс ConfigurationSection.

Автор: Gelis 20.2.2007, 12:20
А если в реестр записать?

Автор: HalkaR 20.2.2007, 13:01
Gelis, реестр не мусорка! Его рекомендуется использовать только в самых крайних случаях. Лучше просто класть настройки в папку своего приложения папки Apllication Data.

Автор: РустамНМ 20.2.2007, 14:25
HalkaR, 
Получается, получится один файл... Да?

Gelis, 
А как это делается... Хм... Распишите, пожалуйста. Предполагаю, что эта тема не только для меня актуальна...

Автор: ivashkanet 20.2.2007, 14:37
http://forum.vingrad.ru/index.php?showtopic=101468

Добавлено @ 14:38 
Особенно полезна ссылка в конце темы smile

Автор: Gelis 20.2.2007, 14:52
Код

using Microsoft.Win32;
.............................................
private bool ReadValue()
{
      RegistryKey softwareKey = Registry.LocalMachine.OpenSubKey("Software");
      RegistryKey progaKey = softwareKey.OpenSubKey("Proga");
      if (progaKey == null)
    return false;
      RegistryKey textBoxKey =progaKey.OpenSubKey("TextBox");
      if (textBoxKey == null)
    return false;
      else
         textBox1.Text= (string)textBoxKey.GetValue("Text");

      return true;
}
private void SaveValue()
{
RegistryKey softwareKey = Registry.LocalMachine.OpenSubKey("Software", true);
RegistryKey progaKey = softwareKey.CreateSubKey("Proga");
RegistryKey textBoxKey=progaKey.CreateSubKey("TextBox");
textBoxKey.SetValue("Text",    textBox1.Text);
            
}
//конструктор формы
public Form1()
{
     InitializeComponent();
     ReadValue();
}
protected override void Dispose( bool disposing )
{
     ........................
      SaveValue();
      base.Dispose();
}

Автор: РустамНМ 20.2.2007, 15:18
Спасибо всем за ссылки!!! Класс. Есть пища для размышлений =)

Автор: CDell 26.3.2008, 22:18
Народ, а я чё то не могу разобраться.
Есть форма, там textBox. 
Нужно при нажатии на кнопку "ок" сохранить то что туда ввели, и при следующем вызове окна оказать то что туда ввели.
Так же нужно использовать эти данные при выполнение программы(нужно читать данные из этого файла).

Подскажите куда копать? Может в курсе в какой книги(на русском) об этом написано?

Автор: VisualProgrammerNET 27.3.2008, 00:09
Ой как же тут любят заморачиваться... Какие-то невероятные решения для простейших задач. Ну на что ввели сериализацию =) Добавил атрибут и пару методов в класс - всё, сохраняй хоть в папку System32 настройки свои, если не хочешь, чтобы кишки были видны. Для 98% случаев (не владеющих FileMon'ом) этого будет более, чем достаточно  smile  

За весь мой опыт работы с .NET так и не придумал лучшего способа хранения информации для программы, чем сериализация (Serialization). Поэтому лично я советую копать именно туда. Другие могут оспорить =)

Хранишь секретные правительственные данные? Да нет проблем - напиши свой метод сериализации с шифровкой/дешифровкой! 

ЗЫ. Хотя тут стоит заметить, что не все классы имеют возможность быть сериализованными. Так что тут тоже надо подходить с умом  smile 

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