Форум программистов, компьютерный форум, киберфорум
C#: Базы данных, ADO.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.60/5: Рейтинг темы: голосов - 5, средняя оценка - 4.60
0 / 0 / 0
Регистрация: 08.02.2022
Сообщений: 8
1
.NET Core

Выделить ячейку в dataGridView

10.02.2022, 14:27. Показов 854. Ответов 8

Author24 — интернет-сервис помощи студентам
Выполняю поиск по внешним данным, сравниваю данные в локальной БД (перебор по элементам внешних данных):
C#
1
var DSItem = DS.Table1.FirstOrDefault(t => t.Name == BrItem.Name);  // BrItem - внешние данные, DS - DataSet, полученный из локальной БД
Если внешние данные изменились, то меняем в локальном DS:
C#
1
 DSItem.Name = BrItem.Name;
и нужно выделить цветом, привязанную к DS ячейку dataGridView.
C#
1
dataGridView1["ColName", NumRows].Style.BackColor = Color.Yellow; // ColName - имя столбца
Вопрос, как мне определить NumRows, которая соответствует DSItem?
Я понимаю, что можно поиском, но хотелось бы более изящным способом - какой-то объект уже имеет эту связь, как её можно получить (пробовал через bindingSource - тоже не нашел как получить эту связь)?

Добавлено через 2 часа 26 минут
я
Цитата Сообщение от Flexius Посмотреть сообщение
var DSItem = DS.Table1.FirstOrDefault(t => t.Name == BrItem.Name);  // BrItem - внешние данные, DS - DataSet, полученный из локальной БД
Сорри, неправильно написал, читать как:
C#
1
var DSItem = DS.Table1.FirstOrDefault(t => t.IdName == BrItem.IdName);  // BrItem - внешние данные, DS - DataSet, полученный
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
10.02.2022, 14:27
Ответы с готовыми решениями:

Комбобокс в ячейку datagridview
Всем доброго дня, интересует такой вопрос: Можно ли в ячейке datagridview как-то отобразить...

Не могу изменить ячейку в dataGridView
Ячейка меняется если ее менять на число, но если меня на string, то выдает ошибку Сразу...

В DataGridView не вносятся данные в ячейку
Всем доброго времени суток. В созданном datagridview меняю тип одного столбца на...

Как покрасить ячейку datagridview по условию?
private void myGrid6_DataBindingComplete(object sender, DataGridViewBindingCompleteEventArgs e) ...

8
1480 / 935 / 454
Регистрация: 06.02.2012
Сообщений: 2,862
10.02.2022, 14:37 2
Цитата Сообщение от Flexius Посмотреть сообщение
FirstOrDefault
Вам вернет первую входящую строку по вашему запросу.У (DS - DataSet ) нет нумерации строк.
0
0 / 0 / 0
Регистрация: 08.02.2022
Сообщений: 8
10.02.2022, 15:07  [ТС] 3
Цитата Сообщение от Kazbek17 Посмотреть сообщение
Вам вернет первую входящую строку по вашему запросу.У (DS - DataSet ) нет нумерации строк.
Да, я нахожу объект из DS (условие "t => t.IdName == BrItem.IdName" (это не номер строки, а поле идентификатора)), в котором есть изменение. Меняю в объекте DSItem (это элемент из коллекции объекта DS (перебор foreach-ом)) на полученные данные, в dataGridView это отображается (т.к. таблица привязана к DS), но как подсветить ячейку я не понимаю, т.к. не знаю соответствующую DSItem строку dataGridView.
0
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
10.02.2022, 15:46 4
Flexius, У грида есть много методов, которые позволяют менять BackColor у ячейки. Например
https://docs.microsoft.com/en-... esktop-6.0
Зная номер строки и столбца в одном источнике данных вы можете получить их значения из другого источника данных и сравнить(при условии, что данные в гриде не сортировались, не применялся фильтр и т.д.)
0
1480 / 935 / 454
Регистрация: 06.02.2012
Сообщений: 2,862
10.02.2022, 16:17 5
Flexius,
попробуйте так.
C#
1
    int indx = DS.Select((val, i) => (i, val.IdName == BrItem.IdName)).Where(x => x.Item2).FirstOrDefault().Item1.Dump();
1
0 / 0 / 0
Регистрация: 08.02.2022
Сообщений: 8
11.02.2022, 07:24  [ТС] 6
Цитата Сообщение от Igr_ok Посмотреть сообщение
Зная номер строки и столбца в одном источнике данных вы можете получить их значения из другого источника данных
Спасибо, конечно, но это и был мой вопрос, как зная объект источника получить соответствие в объекте-отображения.

Добавлено через 2 минуты
Цитата Сообщение от Kazbek17 Посмотреть сообщение
попробуйте так.
Может придется и так, спасибо, но это поиск, который я бы хотел избежать, о чем писал в 1-ом посте.
0
785 / 616 / 273
Регистрация: 04.08.2015
Сообщений: 1,713
11.02.2022, 11:50 7
Flexius, самый простой вариант - хранить на записи какой-то признак, в зависимости от которого и красить ячейку. В вашем случае даже ничего делать не надо, потому что этим признаком является изменение записи, что вы можете отследить через свойство DataRow.RowState. В методе, ссылку на который я кидал выше
C#
1
2
3
4
if (this.dataGridView1.Columns[e.ColumnIndex].Name == "Name")
//получить DataRow row
if (row.RowState ==DataRowState.Modified)
e.CellStyle.BackColor = Color.Yellow;
0
0 / 0 / 0
Регистрация: 08.02.2022
Сообщений: 8
14.02.2022, 13:02  [ТС] 8
Цитата Сообщение от Igr_ok Посмотреть сообщение
В вашем случае даже ничего делать не надо, потому что этим признаком является изменение записи, что вы можете отследить через свойство DataRow.RowState.
А все данные циклом перебирать предлагаете?
0
1497 / 1238 / 245
Регистрация: 04.04.2011
Сообщений: 4,363
14.02.2022, 14:07 9
Цитата Сообщение от Flexius Посмотреть сообщение
А все данные циклом перебирать предлагаете?
Этого делать не нужно. Записи "перебираются" самим гридом при отрисовке. Вам нужно просто подписаться на соответствующее событие грида и там уже проверять "флажок" и красить ячейки как надо.

Добавлено через 5 минут
Контекстная отрисовка ячеек:
https://docs.microsoft.com/ru-... 6rd%3Dtrue
1
14.02.2022, 14:07
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
14.02.2022, 14:07
Помогаю со студенческими работами здесь

Добавление текста в следующую свободную ячейку dataGridView
нужен хелп. нашел кучу примеров, но ни один не работает, или же просто я не понимаю что к чему....

Как выделить цветом строчку DataGridView
Здравствуйте. Подскажите пожалуйста как выделить строчку в DataGridView, но так чтобы она...

Программно выделить строку (или ячейку) с определенным значением в datagridview.
Доброго времени суток! Есть datagridview, в котором несколько столбцов, один из которых id....

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

Выбрать ячейку в datagridview
Есть datagridView. Нажимаем на ячейку с данными. Нужно получить значения 1го столбца текущей...

Как закрасить ячейку DataGridView?
Как закрасить одну из ячеек DataGridView? типа DatagridView1.Color = и тут цвет по известным...

Добавление combobox в ячейку DataGridView
Здравствуйте. У меня есть DatagridView, которая состоит из 5 столбцов. Можно ли добавить combobx в...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru