Форум программистов, компьютерный форум, киберфорум
C# Windows Forms
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
 
Рейтинг 4.53/15: Рейтинг темы: голосов - 15, средняя оценка - 4.53
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404

Копирование данных в другую форму

08.11.2019, 18:30. Показов 3244. Ответов 31
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Привет Всем!
На форме есть datagrid1 и datagrid2. копирую данные из одного datagrid в другой datagrid, всё ок.
код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
 private void button3_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow drv in advancedDataGridView1.Rows)
            {
                bool chkboxselect = Convert.ToBoolean(drv.Cells["Atz"].Value);
                if (chkboxselect)
                {
                  advancedDataGridView2.Rows.Add(drv.Cells[1].Value, drv.Cells[2].Value);
                    
                }
                DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)drv.Cells[0];
 
                if (chk.Value == chk.TrueValue)
                {
                    chk.Value = chk.FalseValue;
                }
                else
                {
                    chk.Value = chk.TrueValue;
                }
            }
        }
мне надо данние скопировать в другую форму datagrid, но выскакивает ошибка.
код:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
   private void button3_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow drv in advancedDataGridView1.Rows)
            {
                bool chkboxselect = Convert.ToBoolean(drv.Cells["Atz"].Value);
                if (chkboxselect)
                {                  
                    Form9 f9 = new Form9();
 
                    f9.advancedDataGridView1.Rows.Add(drv.Cells[1].Value, drv.Cells[2].Value);
                }
                DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)drv.Cells[0];
 
                if (chk.Value == chk.TrueValue)
                {
                    chk.Value = chk.FalseValue;
                }
                else
                {
                    chk.Value = chk.TrueValue;
                }
            }
        }
Помогите пожалуйста, что делать?
Миниатюры
Копирование данных в другую форму  
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
08.11.2019, 18:30
Ответы с готовыми решениями:

Копирование Progressbar в другую форму
Вот ситуация: Есть 2 формы, в 1ой - таймер с прогресс баром, постепенно увеличивающимся. Задача : Во 2ой форме сделать так, чтобы был...

Копирование данных из одного dataGridview в другую
Добрый день, подскажите, копирую отдельно строки и определенные столбцы из одной датагрид в другую, все копируется, только в одну строку, а...

Копирование данных из одной таблицы в другую в SQL
Здравствуйте. Проблема в следующем - нужно скопировать БЕЗ ПОВТОРЕНИЙ поле Код_абитуриента (таблица Абитуриенты) в таблицу...

31
800 / 583 / 207
Регистрация: 21.02.2019
Сообщений: 2,095
08.11.2019, 18:53
.. если у вас вторая DataGridView - DataBound, то добавляйте строки в ее DataSource (т.е. DataTable) ...
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
08.11.2019, 19:21  [ТС]
carrotik, вторая datagrid данние добовяются так:
C#
1
2
3
4
5
6
7
8
9
10
11
12
  private void Form9_Load(object sender, EventArgs e)
        {
this.tPTHEFTSdbTableAdapter1.Fill(this.eXCEL_TPTHEFTSDataSet1.TPTHEFTSdb);
 System.Data.DataTable table = LoadExcelSheetToTable(@"\\w-fsclu1-str\STR\LE\DF\DVKC_DS\DVKC Search Engine\DVKC Search Engine\DVKC Search Engine\bin\Debug\Datubazes\TPTHEFTSdb.xlsx", "theft");
            PlaceTableToDatabase(table);
            using (SqlConnection sqlCon = new SqlConnection(connectionString))
            {
                sqlCon.Open();
                SqlDataAdapter sqlDa = new SqlDataAdapter("SELECT * FROM TPTHEFTSdb", sqlCon);
                System.Data.DataTable dtbl = new System.Data.DataTable();
                sqlDa.Fill(dtbl);
                tPTHEFTSdbTableAdapter1.Fill(this.eXCEL_TPTHEFTSDataSet1.TPTHEFTSdb);
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
09.11.2019, 13:38
Лучший ответ Сообщение было отмечено Felikss как решение

Решение

Felikss, Для копирования есть определенный порядок:
1. Скопировать все данные грида формы1 в массив
2. На форме 2 установить грид и массив аналогичный гриду и массиву формы1
3. для массива формы2 установить свойство Modifiers в public
4. Скопировать массив из формы1 в массив формы2
5. Заполнить грид формы2 данными из массива этой формы
1
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
10.11.2019, 05:56  [ТС]
zna926, Спасибо за информацию, но можно какой то пример с кодом?
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
10.11.2019, 15:23
Felikss, Можно, нужны размеры грида и что в клетках(одно слово:числа, строки и пр.)
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
10.11.2019, 16:59  [ТС]
Таблица большая.
Миниатюры
Копирование данных в другую форму  
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
10.11.2019, 17:22
Felikss, Возможно кто-то сможет передать такую таблицу, я, к сожалению, не справлюсь
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
13.11.2019, 15:50  [ТС]
zna926, А почему этот код работает если второй datagridview находится на той же форме?
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
 private void Button2_Click(object sender, EventArgs e)
        {
            foreach (DataGridViewRow drv in advancedDataGridView1.Rows)
            {
                bool chkboxselect = Convert.ToBoolean(drv.Cells["DGVchkBox1"].Value);
                if (chkboxselect)
                {
                    table.Rows.Add(drv.Cells[1].Value, drv.Cells[2].Value, drv.Cells[3].Value,
                   drv.Cells[4].Value, drv.Cells[5].Value, drv.Cells[6].Value);
                }
                DataGridViewCheckBoxCell chk = (DataGridViewCheckBoxCell)drv.Cells[0];
 
                if (chk.Value == chk.TrueValue)
                {
                    chk.Value = chk.FalseValue;
                }
                else
                {
                    chk.Value = chk.TrueValue;
                }
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
14.11.2019, 00:13
А потому, что из первой формы грид второй формы не виден и в этот случае требуется другой код.
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
14.11.2019, 01:41  [ТС]
Цитата Сообщение от zna926 Посмотреть сообщение
Возможно кто-то сможет передать такую таблицу, я, к сожалению, не справлюсь
А если маленькая таблица, можно какой то пример? Может я смогу потом допилить код под свою таблицу!
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
19.11.2019, 00:26  [ТС]
zna926, Привет! Нашёл решение.
https://www.youtube.com/watch?... gI&t=1101s

Я использую MDIParent в которой при откривание открывается автоматом главная Форма1 с данними а форму 2 я открываю если надо добавить данные в форму1.

Всё работает хорошо, но у меня форма1 где должны вставляться данные уже открита и при нажатии на кнопку (добавить данные) открывается еще одна форма1.
Как решить эту проблему? Убрал Form1.Show(); но тогда вообще данные не добавляется в форму1.

Создал класс:
C#
1
2
3
4
5
6
7
8
9
 public class CommonValue
    {
        public string Gads1 { get; set; }
        public string Numurs1 { get; set; }
        public string Objekts1 { get; set; }
        public string Datums_Laiks1 { get; set; }
        public string Notikums1{ get; set; }
        public string Rīcība1 { get; set; }
    }
Код в Форме1:
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
        public List<CommonValue> Values { get; set; }
 
        public void AddToGrid(List<CommonValue> val)
        {
            if (val !=null)
            {
                foreach (CommonValue item in val)
                {
                    int n = dataGridView1.Rows.Add();
                    dataGridView1.Rows[n].Cells[1].Value = item.Gads1;
                    dataGridView1.Rows[n].Cells[2].Value = item.Numurs1;
                    dataGridView1.Rows[n].Cells[3].Value = item.Objekts1;
                    dataGridView1.Rows[n].Cells[4].Value = item.Datums_Laiks1;
                    dataGridView1.Rows[n].Cells[5].Value = item.Notikums1;
                    dataGridView1.Rows[n].Cells[6].Value = item.Rīcība1;
                } 
            }
      }
 
 
        private void Form1_Load(object sender, EventArgs e)
        {
               AddToGrid(Values);
        }
Код в Форме2:

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
 public partial class Form2 : Form
    {
          public List<CommonValue> Values { get; private set; }
}
 
 private void button1_Click(object sender, EventArgs e)
        {
            List<CommonValue> CV = new List<CommonValue>();
            foreach (DataGridViewRow item in advancedDataGridView1.Rows)
            {
                if (Convert.ToBoolean(item.Cells[0].Value))
                {
                    CV.Add(new CommonValue
                    {
                        Gads1 = item.Cells[1].Value.ToString(),
                        Numurs1 = item.Cells[2].Value.ToString(),
                        Objekts1 = item.Cells[3].Value.ToString(),
                        Datums_Laiks1 = item.Cells[4].Value.ToString(),
                        Notikums1 = item.Cells[5].Value.ToString(),
                        Rīcība1 = item.Cells[6].Value.ToString(),
                    });
                }
            }
            Form1 f1 = new Form1();
            f1.Values = CV;
            f1.MdiParent = MDIParent1.ActiveForm;
            f1.Show();
        }
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
19.11.2019, 00:55
Felikss, Нашел код- это хорошо. Хотя,возможно, препод может его и забраковать из-за кучи ненужных нагромождений
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
19.11.2019, 03:15  [ТС]
zna926, Какой препод?
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
19.11.2019, 15:59
Felikss, Преподаватель
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
19.11.2019, 16:45  [ТС]
zna926, Я не учусь и в этой сфере не учился. Это типо хобби, я самоучка. Я это делаю для работы.
Так как мне исправить проблему?
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
19.11.2019, 17:11
Мой код занимает 16-17 строчек. Очень простой, без нагромождений. Код в 4 этапа. По правилам форума 1 вопрос - 1 ответ.
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
20.11.2019, 16:06  [ТС]
zna926, осталось только решить проблему:
сё работает хорошо, но у меня форма1 где должны вставляться данные уже открита и при нажатии на кнопку (добавить данные) открывается еще одна форма1.
Как решить эту проблему? Убрал Form1.Show(); но тогда вообще данные не добавляется в форму1.
0
549 / 480 / 315
Регистрация: 24.09.2013
Сообщений: 3,345
Записей в блоге: 1
21.11.2019, 01:08
Felikss, Не морочь ни себе, ни мне голову. Свою программу положи в свой архив, т.к. с ней ничего не получишь.
В твоем случае код совершено другой.
0
4 / 4 / 0
Регистрация: 21.08.2016
Сообщений: 404
27.11.2019, 08:31  [ТС]
Никто так и не поможет решить эту проблему?
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
27.11.2019, 08:31
Помогаю со студенческими работами здесь

Передача данных в другую форму
Подкопилось сразу несколько вопросов... 1) Мне с главной формы форм1 надо передавать на дочернюю форм2 некие данные типа String и занести...

Передача данных в другую форму
Доброго времени суток. Есть такая задача: в окне № 1 открывается таблица, выбирается запись, нажимается кнопка и открывается окно №2 с...

Передача данных с одной в другую форму
Есть 2 формы. Одна основная FormMain и вторая маленькая FormMainMenu при запуске программы должны открыться обе. На FormMainMenu кнопка...

Передача данных из формы в другую форму
Здравствуйте, подскажите, пожалуйста. Мне нужно передавать данные из одной формы в другую. Вот, например, на первой форме я регистрирую...

Передача данных из combobox'a в другую форму
Добрый день! Подскажите, как изменять значение label в Form2 при выборе значения combobox в Form1 не нарушая ООП? Заранее благодарю!


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

Или воспользуйтесь поиском по форуму:
20
Ответ Создать тему
Новые блоги и статьи
Как дизайн сайта влияет на конверсию: 7 решений, которые реально повышают заявки
Neotwalker 08.03.2026
Многие до сих пор воспринимают дизайн сайта как “красивую оболочку”. На практике всё иначе: дизайн напрямую влияет на то, оставит человек заявку или уйдёт через несколько секунд. Даже если у вас. . .
Модульная разработка через nuget packages
DevAlt 07.03.2026
Сложившийся в . Net-среде способ разработки чаще всего предполагает монорепозиторий в котором находятся все исходники. При создании нового решения, мы просто добавляем нужные проекты и имеем. . .
Модульный подход на примере F#
DevAlt 06.03.2026
В блоге дяди Боба наткнулся на такое определение: В этой книге («Подход, основанный на вариантах использования») Ивар утверждает, что архитектура программного обеспечения — это структуры,. . .
Управление камерой с помощью скрипта OrbitControls.js на Three.js: Вращение, зум и панорамирование
8Observer8 05.03.2026
Содержание блога Финальная демка в браузере работает на Desktop и мобильных браузерах. Итоговый код: orbit-controls-threejs-js. zip. Сканируйте QR-код на мобильном. Вращайте камеру одним пальцем,. . .
SDL3 для Web (WebAssembly): Синхронизация спрайтов SDL3 и тел Box2D
8Observer8 04.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-sync-physics-sprites-sdl3-c. zip На первой гифке отладочные линии отключены, а на второй включены:. . .
SDL3 для Web (WebAssembly): Идентификация объектов на Box2D v3 - использование userData и событий коллизий
8Observer8 02.03.2026
Содержание блога Финальная демка в браузере. Итоговый код: finish-collision-events-sdl3-c. zip Сканируйте QR-код на мобильном и вы увидите, что появится джойстик для управления главным героем. . . .
Реалии
Hrethgir 01.03.2026
Нет, я не закончил до сих пор симулятор. Эта задача сложнее. Не получилось уйти в плавсостав, но оно и к лучшему, возможно. Точнее получалось - но сварщиком в палубную команду, а это значит, в моём. . .
Ритм жизни
kumehtar 27.02.2026
Иногда приходится жить в ритме, где дел становится всё больше, а вовлечения в происходящее — всё меньше. Плотный график не даёт вниманию закрепиться ни на одном событии. Утро начинается с быстрых,. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru