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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Сохранение данных формы 
:(
    Опции темы
liri2006
Дата 30.11.2010, 22:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



На форме есть кнопка по щелчку на котороую создается окно, там вводятся все необходимые данные. По его закрытию на основную форму добавляется лабель, в контент которой копируется значение одного поля с окна с данными, по двойному щелчку на лабеле открывается соответственное окно с данными. Лабелей может быть сколько угодно. Вопрос заключается в том как все это дело сохранить, как наличие лабелей, так и соответствующей им информации из окон с данными.
PM MAIL   Вверх
jonie
Дата 30.11.2010, 23:05 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



Для начала вам надо забыть про формы. Вообще забыть и рассмотреть эту задачу так, как будто форм нет.
Т.е.
Код

class LabelInfo {
 public string Title {get;set;}
 
 public LabelSubInfo SubInfo {get;set;}
}

class LabelSubInfo {
  public string Text {get;set;}
}


Далее, ваши леблы вы "биндите" на LabelInfo как угодно, вплоть до записи в Label.Tag этих данных.

По щелчку вы вызываете форму, передавая в конструктор LabelSubInfo и форма как-то с ним работает.

Если вы добавляете данные, то соотвественно конструктор не принимает параметров, но форма имеет проперти LabelSubInfo  Info {get;}, которое извлечет вызывающая форма и что надо сделает с этой инфой....


вот как-то так..


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
liri2006
Дата 1.12.2010, 03:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



еммм, если чесно, то я ничего не понял)) можна на живом примере? вот код:
Кнопка добавления
Код

private void addBloodBio_Click(object sender, System.Windows.RoutedEventArgs e)
        {
            bloodAnalizBio Blood1 = new bloodAnalizBio();
            Blood1.ShowDialog();

            if (!Blood1.closingBlood)
            {
                MakeLabel newLabel = new MakeLabel(Blood1, canvasBlood1);
                canvasBlood1.Children.Add(newLabel.getLabel());
                bloodBio.IsExpanded = true;
            }
        }

Класс добавляющий лабель
Код

public class MakeLabel
        {
            private Label m_Label { get; set; }
            private bloodAnaliz m_Window { get; set; }
            private Canvas m_Canvas { get; set; }
            
            private int mode = 0;

            public MakeLabel(bloodAnaliz window, Canvas canvas)
            {
                mode = 1;
                m_Window = new bloodAnaliz();
                m_Canvas = new Canvas();
                m_Label = new Label();
                m_Window = window;
                m_Canvas = canvas;
                
                m_Label.Content = m_Window.date.Text;
                m_Label.MouseDown += new MouseButtonEventHandler(m_Label_MouseDown);
                m_Label.MouseDoubleClick += new MouseButtonEventHandler(m_Label_MouseDoubleClick);
            }

             public Label getLabel()
            {
                return m_Label;
            }

            private void m_Label_MouseDoubleClick(object sender, MouseButtonEventArgs e)
            {
                        m_Window.ShowDialog();
                        m_Label.Content = m_Window.date.Text;
            }
}

PM MAIL   Вверх
jonie
Дата 1.12.2010, 09:43 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



пример в аттаче, но построен он на гридах, а не на ваших леблах. Лейблы и т.д. - ваша забота.

Присоединённый файл ( Кол-во скачиваний: 4 )
Присоединённый файл  WindowsFormsApplication12.rar 16,74 Kb


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
liri2006
Дата 1.12.2010, 12:09 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



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

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



Спасиба за пример, но с гридами то как раз все ясно. Данные нужно сохранять в файл, насколько я понял это делается с помощью сериализации. Проблема как раз в том чтобы сохранить нужное количество лаблей с нужным текстом и привязанными к ним данным.
PM MAIL   Вверх
jonie
Дата 1.12.2010, 12:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
****


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

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



liri2006, грид это Вид, он никак не вляет на логику работы с данными....


--------------------
Что-то не поняли? -> Напейтесь до зеленых человечков... эта сверхцивилизация Вам поможет...
PM MAIL Jabber   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Прежде чем создать тему, посмотрите сюда:
mr.DUDA
THandle

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


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

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


 




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


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

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