Форум программистов, компьютерный форум, киберфорум
C# для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/26: Рейтинг темы: голосов - 26, средняя оценка - 4.50
Автор FAQ
Автор FAQ
 Аватар для Rockedit
1803 / 615 / 37
Регистрация: 22.12.2009
Сообщений: 1,544

Сохранение изменений формы, сериализация.

15.09.2010, 23:11. Показов 4782. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте! Возник такой вопрос:
Есть приложение типа WindowsForms, состояшее из одной формы и компонентов(TextBox, Button, ComboBox....), которые создаются динамически, причем заранее не известно, сколько и каких компонентов нужно будет создать и какие свойства они будут иметь, все определяется по ходу работы приложения. Так вот, как, используя сериализацию сохранить все произведенные изменения, т.е. при следующем запуске приложение должно иметь тот вид, который был по окончанию работы.
Заранее всем спасибо!
0
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
15.09.2010, 23:11
Ответы с готовыми решениями:

Сериализация - сохранение
Здравствуйте составляю программу для ввода данных с классами (курсовая), делаю по промеру который приводили на занятиях, после составления...

Сериализация данных и сохранение в Settings.Default
Доброго времени суток уважаемые форумчане. Есть приложение. Сохраняю все настройки в Settings.Default. Задача: ...

Сохранение изменений на форме.
Доброе утро. По кнопке я создаю на форме несколько TextBox. Как сделать, чтобы при повторном открытии формы они оставались на ней ? ...

10
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
15.09.2010, 23:21
Сериализовать коллекцию контролов. Удобней будет использовать имхо бинарную сериализацию
1
Автор FAQ
Автор FAQ
 Аватар для Rockedit
1803 / 615 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
15.09.2010, 23:24  [ТС]
А пример можно?
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
16.09.2010, 00:35
Цитата Сообщение от Rockedit Посмотреть сообщение
Так вот, как, используя сериализацию сохранить все произведенные изменения, т.е. при следующем запуске приложение должно иметь тот вид, который был по окончанию работы.
Цитата Сообщение от Rockedit Посмотреть сообщение
А пример можно?
Попробовал реализовать и наткнулся на такую проблему. Необходимо пометить класс Control атрибутом Serializable. А этого сделать, имхо, не получиться.
1
Автор FAQ
Автор FAQ
 Аватар для Rockedit
1803 / 615 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
16.09.2010, 00:37  [ТС]
Цитата Сообщение от kirill29 Посмотреть сообщение
Попробовал реализовать и наткнулся на такую проблему. Необходимо пометить класс Control атрибутом Serializable. А этого сделать, имхо, не получиться.
Я тоже столкнулся с данной проблемой, но думал есть пути обхода, вот и создал тему. Получается можно сериализовать только объекты своих классов( Спасибо за помошь!
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
16.09.2010, 00:42
Может это и извращение, но вариант все же есть. Можно создать свой собственный класс, типа псевдоконтрол. Содержимое этого класса - свойства реально существующего контрола. На основе этого класса создаем коллекцию, содержащую описания всех контролов. И вот эту коллекцию уже можно будет без проблем сериализовать и в последующем загрузить.
Как правило, для элементов формы используются по умолчанию всего несколько свойств (размер, положение на форме, цвет, текст, название ...)
1
Автор FAQ
Автор FAQ
 Аватар для Rockedit
1803 / 615 / 37
Регистрация: 22.12.2009
Сообщений: 1,544
16.09.2010, 00:44  [ТС]
Спасибо, буду думать. Может проше уже сохранять все в xml)
0
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
19.09.2010, 19:34
Привет. Подскажите пожалуйста как сохранить на форме то что я создаю при каждом запуске. Я программно создаю текстбоксы и кнопки и все они должны остаться при следующем запуске. Вот код. Создаются текстбоксы один под другим.
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
 
namespace KatPlan
{
    public partial class Form1 : Form
    {
        
        public Form1()
        {
            InitializeComponent();
            
        }
 
        private void KatPlan_Load(object sender, EventArgs e)
        {
 
        }
 
        private void создатьНовыйToolStripMenuItem_Click(object sender, EventArgs e)
        {
            System.Windows.Forms.TextBox GMashin = new System.Windows.Forms.TextBox();
            int Y = 51;
            GMashin.Location = new System.Drawing.Point(3, Y);
            GMashin.Size = new System.Drawing.Size(124, 20);
            foreach (Control cl in this.Controls)
            {
                var v = cl.Bounds;
                while (v.IntersectsWith(GMashin.Bounds))
                {
                    Y += 3;
                    GMashin.Location = new System.Drawing.Point(3, Y);
                }
            }
            GMashin.Name = "GMashin1";
            Controls.Add(GMashin);
 
        }
 
 
    }
}
Подскажите пожалуйста, очень нужно, любым способом.
0
 Аватар для kirill29
2098 / 1263 / 173
Регистрация: 01.02.2009
Сообщений: 2,842
19.09.2010, 23:12
Цитата Сообщение от piloterist Посмотреть сообщение
Подскажите пожалуйста ... любым способом.
piloterist, см. #6
0
4 / 4 / 0
Регистрация: 10.10.2009
Сообщений: 301
20.09.2010, 07:35
А пример не приведете? А то я теряюсь в догадках, что там написано.
0
CEO
Эксперт С++
 Аватар для Alligieri
2258 / 1248 / 57
Регистрация: 16.03.2009
Сообщений: 3,588
20.09.2010, 12:09
kirill29, мне вот интересно - если создать собственный компонент производный от Button скажем он тоже сериализироватся не сможет?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
20.09.2010, 12:09
Помогаю со студенческими работами здесь

Сохранение изменений в коде
Как мне сохранять изменения в коде чтобы дальше если моя программа придет в нерабочее состояние я смогу вернуться к рабочей.

сохранение изменений dataGridView
Добрый день, закидывают в датагрид таблицы таким способом(в комбобоксе имя таблицы) dataGridView1.DataSource =...

Linq Сохранение изменений в dataGridView
Как сделать, чтоб сохранялись изменения в dataGridView? db = new DataClasses1DataContext(str); db.Connection.Open(); ...

Сохранение изменений в конструкторе формы
Проблема такая: есть составная форма, с несколькими вложенными подчиненными. В режиме конструктора вношу изменения: длина и высота...

Сохранение изменений в datagridview при закрытие формы
Есть форма с datagridview, который создан перетаскиванием из источника данных. Нужно сделать так, что бы при закрытии формы, в случае...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru