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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 09.12.2018, 15:58   #1
anshnine
Пользователь
 
Регистрация: 15.10.2017
Сообщений: 31
По умолчанию Перенести выбранную строку в другой dataGridview

Здравствуйте.
Требуется выделенную строку из одного datagrid перенести в другой.
Код:
private void button1_Click(object sender, EventArgs e)
        {
 
            for (int i = 0; i < dataGridView1.RowCount; i++)
            {
                dataGridView1.Rows[i].Selected = false;
                for (int j = 0; j < dataGridView1.ColumnCount; j++)
                    if (dataGridView1.Rows[i].Cells[j].Value != null)
                        if (dataGridView1.Rows[i].Cells[j].Value.ToString().Contains(textBox1.Text))
                        {
                            dataGridView1.Rows[i].Selected = true;
                            break;
                        }
            }
        }
Данный код осуществляет поиск совпадений между textbox и любой ячейкой в datagrid.
А как в этот же код вкрутить отображение этой строки в новый datagrid ?
Заранее спасибо
anshnine вне форума Ответить с цитированием
Старый 11.12.2018, 11:05   #2
anshnine
Пользователь
 
Регистрация: 15.10.2017
Сообщений: 31
По умолчанию

Вопрос актуален
anshnine вне форума Ответить с цитированием
Старый 11.12.2018, 18:30   #3
Black Fregat
Программист
Участник клуба
 
Аватар для Black Fregat
 
Регистрация: 23.06.2009
Сообщений: 1,772
По умолчанию

Цитата:
Сообщение от anshnine Посмотреть сообщение
А как в этот же код вкрутить отображение этой строки
Внутри самого внутреннего if. Там же есть актуальная позиция в гриде
Цитата:
Сообщение от anshnine Посмотреть сообщение
в новый datagrid ?
На какое место?
Black Fregat вне форума Ответить с цитированием
Старый 13.12.2018, 21:53   #4
anshnine
Пользователь
 
Регистрация: 15.10.2017
Сообщений: 31
По умолчанию

Добрый вечер , я уже решил эту проблему , к сожалению возможности вставить код сейчас нету .
anshnine вне форума Ответить с цитированием
Старый 23.12.2018, 14:28   #5
anshnine
Пользователь
 
Регистрация: 15.10.2017
Сообщений: 31
По умолчанию

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

Код:
int RC = dataGridView1->RowCount;
	int CC = dataGridView1->ColumnCount;
	
	for (int i = 0; i < CC; i++)
	{
		
		for (int j = 0; j < RC; j++)
		{
			if (dataGridView1->Rows[j]->Selected==true) {
				
				dataGridView2->Rows->Add();
				dataGridView2->Rows[j]->Cells[i]->Value = dataGridView1->Rows[j]->Cells[i]->Value;
				

				
			}
			
		}
	}
	int a = dataGridView1->CurrentRow->Index;
	dataGridView1->Rows->Remove(dataGridView1->Rows[a]);
anshnine вне форума Ответить с цитированием
Старый 23.12.2018, 14:40   #6
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
for (int i = 0; i < CC; i++)
	{
		if (dataGridView1->Rows[j]->Selected==true) {
			dataGridView2->Rows->Add();
	        	for (int j = 0; j < RC; j++)
		       {
				dataGridView2->Rows[j]->Cells[i]->Value = dataGridView1->Rows[j]->Cells[i]->Value; 
			}
		}
	}
dataGridView2->Rows[j]-> .... /// а кто сказал что будет вставлена именно строка j
P.S. это(какая строка будет добавлена) знает только тот кто добавляет(та процедура/функция) ...->Add()
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 23.12.2018 в 14:50.
evg_m вне форума Ответить с цитированием
Старый 23.12.2018, 15:00   #7
anshnine
Пользователь
 
Регистрация: 15.10.2017
Сообщений: 31
По умолчанию

ПРи таком коде каждая строчка занимает тоже самое место на котором она была в первой таблице
Код:
int RC = dataGridView1->RowCount;
	int CC = dataGridView1->ColumnCount;
	for (int i = 0; i < RC; i++)
	{
		if (dataGridView1->Rows[i]->Selected == true) {
			dataGridView2->Rows->Add();
			for (int j = 0; j < CC; j++)
			{
				dataGridView2->Rows[i]->Cells[j]->Value = dataGridView1->Rows[i]->Cells[j]->Value;
			}
		}
	}

Последний раз редактировалось anshnine; 23.12.2018 в 15:06.
anshnine вне форума Ответить с цитированием
Старый 23.12.2018, 15:11   #8
anshnine
Пользователь
 
Регистрация: 15.10.2017
Сообщений: 31
По умолчанию

И выскакивает ошибка с индексами , если в первом datagrid 3 строчки и выделяем 3ью строчку и удаляем ее.
Изображения
Тип файла: png Скриншот 23-12-2018 170928.png (26.0 Кб, 158 просмотров)
anshnine вне форума Ответить с цитированием
Ответ


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

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как перенести программу на другой компьюьтер lord24 БД в Delphi 33 27.05.2015 08:41
Как перенести данные из DataGridView в TextBox dima1257 C# (си шарп) 1 21.12.2013 21:28
перенести часть текста в другой столбец horpenst Microsoft Office Excel 4 13.07.2011 01:37
перенести type из одного модуля в другой fize Помощь студентам 3 12.12.2009 18:57
Перенести строку Михаил Юрьевич БД в Delphi 3 04.08.2009 12:16