Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > .NET Frameworks (точка нет фреймворки) > Общие вопросы .NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 14.08.2009, 15:34   #1
Arhe
Пользователь
 
Регистрация: 21.02.2008
Сообщений: 28
По умолчанию Datagridview. Копирование и присваивание.

Что будет если я один Datagridview присваиваю другому оператором «=». Я получу два одинаковых объекты или у меня две переменные буду указывать на один и тот же датагридвю в памяти ?

И тогда вопрос, как присвоить один датагридвю другому с сохранением данных и структуры столбцов/рядков ?
Arhe вне форума Ответить с цитированием
Старый 14.08.2009, 16:23   #2
ds.Dante
Старожил
 
Аватар для ds.Dante
 
Регистрация: 06.08.2009
Сообщений: 2,992
По умолчанию

Я как раз сейчас начал писать программу с такой штукой.

Обычно используются указатель на объект (точнее, handle), поэтому две переменные будут указывать на один объект. Можно использовать конструктор копий, типа
MyDataGridView2 (MyDataGridView1);
Так, по крайней мере, в C++.

P. S. Что-то я не нашел конструктора копий...

Последний раз редактировалось ds.Dante; 14.08.2009 в 16:33.
ds.Dante вне форума Ответить с цитированием
Старый 18.08.2009, 15:32   #3
Arhe
Пользователь
 
Регистрация: 21.02.2008
Сообщений: 28
По умолчанию

Проблема:
Есть список public List<DataGridView> dgr_list = new List<DataGridView>();
Он должен сохранять Datagriedview после того, как в его ячейку внесут изменения. Но у меня весь список выходит копией последнего DataGridView который я ему передаю. По логике они все значит указывают на один и тот же обьект в памяти. Ка сделать так что б это был список разных обьектов ?
код класа прилагается (как я уже только не пытался, это последний вариант)

Код:
 class UndoRedo2
    {
        DataGridView dgr = new DataGridView();
        public List<DataGridView> dgr_list = new List<DataGridView>();

        public void Datachanged(DataGridView _dgr)
        {
            dgr.Columns.Clear();

            foreach (DataGridViewColumn dgvcol in _dgr.Columns)
            {
                dgr.Columns.Add((DataGridViewColumn)dgvcol.Clone());
            }

            for (int i = 0; i < _dgr.RowCount; i++)
            {
                dgr.Rows.Add();
                dgr.Rows[i].Cells[1].Value = _dgr.Rows[i].Cells[1].Value;
            }
            dgr_list.Add(dgr);
        }

        public DataGridView Undo()
        {
            dgr_list.RemoveAt(dgr_list.Count - 1);
            dgr.Columns.Clear();
            foreach (DataGridViewColumn dgvcol in dgr_list[dgr_list.Count-1].Columns)
            {
                dgr.Columns.Add((DataGridViewColumn)dgvcol.Clone());
            }
            for (int i = 0; i < dgr_list[dgr_list.Count-1].Columns.Count; i++)
            {
                dgr.Rows.Add();
                dgr.Rows[i].Cells[1].Value = dgr_list[dgr_list.Count - 1].Rows[i].Cells[1].Value;
                
            }

            return dgr;
        }

Последний раз редактировалось Arhe; 18.08.2009 в 15:39.
Arhe вне форума Ответить с цитированием
Старый 09.09.2009, 16:34   #4
Arhe
Пользователь
 
Регистрация: 21.02.2008
Сообщений: 28
По умолчанию

ап, все еще нуждаюсь в помощи
Arhe вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Присваивание тексту Memo значения из TStringList Alex Cones Общие вопросы Delphi 10 14.08.2009 21:07
Присваивание объектов Stalevar Общие вопросы Delphi 0 17.02.2009 19:06
Присваивание атрибута папке. papa_serg Общие вопросы Delphi 2 05.01.2009 16:45
динамическое присваивание параметров The Doberman БД в Delphi 0 14.09.2007 07:58