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

Копирование строк из DGV1 в DGV2

07.12.2022, 13:20. Показов 1195. Ответов 23

Студворк — интернет-сервис помощи студентам
Извините, все вроде бы элементарно и много ответов на эту тему, но решение не нашел
Есть форма с двумя DataGridView. Строки выделяются с пмощью Ctrl. Свойство SelectionMode установлено в FullRowSelect, свойство MultiSelect установлено в True. При нажатии кнопки выделенные строки должны копироваться в DGV2
Перед копированием проверяется количество выделенных строк и их индексы
На этом этапе все правильно. Но реально (как видно на скриншоте) копируются строки, начиная с 1-й строки DGV1

Код для копирования был взят из другого примера
Кликните здесь для просмотра всего текста
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
  Int32 selectedRowCount = dataGridView1.Rows.GetRowCount(DataGridViewElementStates.Selected);
            if (selectedRowCount > 0)
            {
                System.Text.StringBuilder sb = new System.Text.StringBuilder();
 
                for (int i = 0; i < selectedRowCount; i++)
                {
                    sb.Append("Выбрана строка: ");
                    sb.Append(dataGridView1.SelectedRows[i].Index.ToString());
                    sb.Append(Environment.NewLine);
                    int n = dataGridView2.Rows.Add();
                    dataGridView2.Rows[n].Cells[0].Value = dataGridView1.Rows[n].Cells[1].Value.ToString();
                    dataGridView2.Rows[n].Cells[1].Value = dataGridView1.Rows[n].Cells[2].Value.ToString();
                    dataGridView2.Rows[n].Cells[2].Value = dataGridView1.Rows[n].Cells[3].Value.ToString();
                    dataGridView2.Rows[n].Cells[3].Value = dataGridView1.Rows[n].Cells[4].Value.ToString();
                }
 
                sb.Append("Всего выбрано строк: " + selectedRowCount.ToString());
                MessageBox.Show(sb.ToString(), "Selected Rows");
            }


Понимаю, что в нем что-то не так, но довести ума не хватает. В частности, непонятно, почему не задается исходное значение n и как оно увеличивается.
Что в этом коде неправильно?
Миниатюры
Копирование строк из DGV1 в DGV2  
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
07.12.2022, 13:20
Ответы с готовыми решениями:

Нарисовать график матрицы, значения которой заданы в DGV1
foreach (DataGridViewRow Row in Matrix1.Rows) { if ((Row.Cells.Value != null) || (Row.Cells.Value !=...

Функции работы со строками символов: определение размера строки, копирование строк, добавление строк, сравнение строк
На языке Ассемблер написать функции работы со строками символов: определение размера строки, копирование строк, добавление строк, сравнение...

Копирование диапазона строк из одной книги в другую, при разном количестве строк
Добрый день ! Вопрос такой: есть две книги(например 7.1 и 7.2 ) с расшифровками счетов, счета идентичные , но информация о счетах разная. ...

23
 Аватар для Kazbek17
1485 / 939 / 455
Регистрация: 06.02.2012
Сообщений: 2,870
10.12.2022, 09:16
Студворк — интернет-сервис помощи студентам
кидайте сюда ваш проект. Я хз че у вас там.
0
0 / 0 / 0
Регистрация: 05.03.2016
Сообщений: 67
10.12.2022, 11:50  [ТС]
Код
Кликните здесь для просмотра всего текста
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
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
 
namespace _07122022
{
    public partial class Form1 : Form
    {
        BindingList<ItemData> Dgv1Data;
        BindingList<ItemData> Dgv2Data = new BindingList<ItemData>();
 
        public Form1()
        {
            InitializeComponent();
        }
 
        public class ItemData
        {
            public string Value1 { get; set; }
            public string Value2 { get; set; }
            public string Value3 { get; set; }
            public string Value4 { get; set; }
            //и.т.д
        }
 
        private void Form1_Load(object sender, EventArgs e)
        {
            SqlConnection con = new SqlConnection("Data Source=KSERVICE-ACER\\SQLEXPRESS;Initial Catalog=Примеры;Integrated Security=True");
            SqlDataAdapter sda = new SqlDataAdapter("SELECT * FROM Test1", con);
            DataTable dt = new DataTable();
            sda.Fill(dt);
            dataGridView1.Rows.Clear();
            foreach (DataRow item in dt.Rows)
 
            {
 
                ItemData row = new ItemData();
                row.Value1 = item["Id"].ToString();
                row.Value2 = item["Name"].ToString();
                row.Value3 = item["Adress"].ToString();
                row.Value4 = item["Age"].ToString();
               // MessageBox.Show("Строка " + Convert.ToString(row));
                Dgv1Data.Add(row);
            }
            dataGridView1.DataSource = Dgv1Data;
            dataGridView2.DataSource = Dgv2Data;
        }
 
        //Переносим выбранные значения
        private void btnCopy_Click(object sender, EventArgs e)
        {
            DataGridViewSelectedRowCollection selectedRowCount = dataGridView1.SelectedRows;
 
            foreach (DataGridViewRow row in selectedRowCount)
                Dgv2Data.Add(row.DataBoundItem as ItemData);
 
        }
    }
}
0
 Аватар для Kazbek17
1485 / 939 / 455
Регистрация: 06.02.2012
Сообщений: 2,870
10.12.2022, 11:55
kservice, Вы вообще знаете что такое экземпляр класса?
Строка 16 должна иметь экземпляр
C#
1
BindingList<ItemData> Dgv1Data = new BindingList<ItemData>();
0
0 / 0 / 0
Регистрация: 05.03.2016
Сообщений: 67
10.12.2022, 12:11  [ТС]
Исправил. Ошибка пропала, но данные не грузятся, DGV пустая
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
10.12.2022, 12:11

Сравнение строк в нескольких файлах excel, копирование несовпадающих строк и их вывод в сводный файл
Добрый день, только только начал разбираться с VBA в excel, поэтому прошу помощи (схожие темы находил, но не смог преобразовать их...

Копирование строк строк кода в ворд вместе с номерами из VS
Подскажите, как можно скопировать код вместе с их номерами из VS в ворд. Потому что, когда я активирую автоматическую нумерацию, то у меня...

Используя функцию копирования строк, организуйте конкатенацію и копирование строк в четвертый массив, содержащий полные имена
Пожалуйста с этим заданием. Написать программу, которая описывает четыре массива. Три первых массива должны содержать имена, фамилии и...

копирование строк в С
Нужно написать процедуру, копирующую строку src в dst. А программа почему-то не работает. Помогите плиз( #include &lt;stdio.h&gt; ...

копирование строк
подключил cstring к проекту, пытаюсь скопировать одну строку в другую путем ctrcpy_s, но Code::Blocks говорит что такой функции нету......


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

Или воспользуйтесь поиском по форуму:
24
Ответ Создать тему
Новые блоги и статьи
Программный домашний кинотеатр
russiannick 27.09.2026
Сподобился на программный домашний кинотеатр. В качестве ЯВУ по традиции выбрал js. В помощники взял Яндекс-Алису. Было создано три зала на разные интересы. исторические и ретро сериал Хичкок. . .
Беседа с ИИ о программистах, недопускающих к созданию и правке кода генеративные ИИ и причины этого
zorxor 21.09.2026
Раньше я радовался или получал некоторые эмоции, пусть небольшие, но всё же, от самого процесса написания кода, рекомпиляции и запуска, видя постепенное развитие программы и прочее. А теперь лень. . .
Мобильное приложение ColorStep
pavlinmavlin 17.09.2026
Реализовал приложение Красный, Зеленый, Синий в Unity3d + c#. Название изменил на ColorStep. Приложение прошло модерацию и теперь доступно для скачивания. Делал его сам, шаг за шагом — и вот,. . .
Запрет дублирования строк в табличной части
Maks 13.09.2026
Реализация из решения ниже выполнена на нетиповом справочнике "Нормы ТО" с табличной часть "Виды ТО", разработанного в КА2, со следующими реквизитами: - ВидТО (СправочникСсылка. ВидыТО); - ВидГСМ. . .
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр.
Jin X 06.09.2026
Скрипты Tampermonkey для CyberForum, ChatGPT, Claude и пр. Работая с форумом и нейросетями в браузере часто хочется что-то подкорректировать или добавить какого-то функционала. Ниже прикреплён. . .
Программа опроса у.з. расходомера SLS-720F
Argus19 02.09.2026
Программа опроса у. з. расходомера SLS-720F Программа опрашивает один раз в минуту три ультразвуковых расходомера SLS-720F через интерфейс RS-485 по протоколу Modbus RTU. Опрашиваются регистры. . .
Hyper-V: Компьютер должен поддерживать доверенный платформенный модуль 2.0.
Maks 31.08.2026
При установке Windows 11 на виртуальную машину Hyper-V 2-го поколения вылезла такая ошибка: Решение: в параметрах виртуальной машины, в разделе "Безопасность" (Security) активировать флаг. . .
Архитектура биовида Стива в Майнкрафте: Зачем бонобо кубический каннибализм
anaschu 30.08.2026
Кубический Вагинокапитализм в Minecraft: Математический инвариант ОДУ и рок Стивов-бонобо Главная задача разработанной «Модели Всего» — наглядно продемонстрировать наличие системной «судьбы». . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru