Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Базы данных под .NET > Сохранение настроек после закрытия программы


Автор: tatbesidovska 18.10.2009, 19:30
Добрый день! Вопрос такой, есть форма, на ней Грид, хотелось бы реализовать такую вещь: пользователь настраивает интерфейс грида на свой лад, ну т.е фильтры устанавливает и все такое, так вот, после того как он выйдет и снова зайдет в программу, все его настройки сохранялись, заранее спасибо

Автор: KuMa1104 18.10.2009, 19:51
Ну я незнаю как с гридом в частности.
Но обычно можно заняться сериализацией данных, и сохранением их в фаил откуда потом при запуске ты их извлекаеш, и согласно им устанавливаеш настройки.

Добавлено через 2 минуты и 32 секунды
Если интересно вот пример

Код

namespace CustomSerialization
{
    using System;
    using System.IO;
             using System.Runtime.Serialization;
    using System.Runtime.Serialization.Formatters.Binary;
    public class Class1
    {

        public static int Main(string[] args)
        {
            // Make a car and listen to the tunes.
            Console.WriteLine("Making car...");
            CustomCarType myAuto = new CustomCarType("Siddhartha", 50);
            
            // Create a file stream.
            Console.WriteLine("Making *.dat file...");
            Stream myStream = File.Create("CarData.dat");
            
            // Move our graph into the stream using a binary format.
            Console.WriteLine("Saving to file.");
            BinaryFormatter myBinaryFormat = new BinaryFormatter();
            myBinaryFormat.Serialize(myStream, myAuto);
            myStream.Close();

            Console.WriteLine("Reading from file.");
            myStream = File.OpenRead("CarData.dat");

            CustomCarType carFromDisk = 
            (CustomCarType)myBinaryFormat.Deserialize(myStream);

            Console.WriteLine(carFromDisk.petName + " is alive!");
            myStream.Close();

            return 0;
        }
    }
[Serializable]
    public class CustomCarType : ISerializable
    {
        public string petName;
        public int maxSpeed;

        public CustomCarType(string s, int i)
        { petName = s; maxSpeed = i;}

        // Impl of ISerializable interface
        public void GetObjectData(SerializationInfo si, StreamingContext ctx)
        {
            // What context is the stream?
            Console.WriteLine("[GetObjectData] Context State: " + ctx.State.ToString());

            // Fill the SerializationInfo type with out info.
            si.AddValue("CapPetName", petName);
            si.AddValue("maxSpeed", maxSpeed);
        }

        // You must supply a custom ctor with this signature
        // to allow the runtime engine to
        // set the state of your object.
        private CustomCarType(SerializationInfo si, StreamingContext ctx)
        {
            // What context is the stream?
            Console.WriteLine("[ctor] Context State: " + ctx.State.ToString());

            // Re-hydrate a new object based on incoming 
            // SerializationInfo type.
            petName = si.GetString("CapPetName");
            maxSpeed = si.GetInt32("maxSpeed");
        }
    }
}


Автор: thomas 19.10.2009, 23:46
tatbesidovska, 
Приветствую.
Вообще то это вопрос не про БД.

Для хранения настроек программы есть такая фича как Settings. Настройки сохраняются в файлы: 
-app.config - для всей программы в целом (задаются один раз при разработке приложения);
-user.config - для отдельного пользователя (можно изменять в режиме runtime).

MSDN в помощь.  smile 

Автор: KuMa1104 20.10.2009, 17:32
Привет  thomas

Хм...
А я всегда тупо делал структуру с настройками и сериа лизовал её, а потом обратно и из нёё пресваивал всё.

Если делать через Settings, то процесс отличаеться?

Автор: thomas 21.10.2009, 21:31
KuMa1104, 
Приветствую.

tatbesidovska, 
Приветствую.

Ссылка для обоих:  http://msdn.microsoft.com/en-us/library/aa730869(VS.80).aspx
или http://msdn.microsoft.com/en-us/library/ms379611(VS.80).aspx
Для 2008 все тоже самое.

Успехов. smile 

ЗЫ да, забыл сказать для редактирования настроек очень удобно использовать такую фичу как PropertyGrid.
Настоятельно рекомендую к использованию. За примерами на CodeProject.  

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