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

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

10.02.2022, 14:27. Показов 869. Ответов 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
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
10.02.2022, 14:27
Ответы с готовыми решениями:

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

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

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

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

8
 Аватар для Kazbek17
1481 / 936 / 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
 Аватар для Kazbek17
1481 / 936 / 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
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
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
Ответ Создать тему
Новые блоги и статьи
Как проверить, что файл НЕ существует с помощью Bash
bytestream 25.01.2025
В системном администрировании проверка существования файлов является фундаментальной операцией, особенно при написании скриптов на Bash. Правильная обработка ситуаций, когда файл отсутствует,. . .
Как проверить, что строка пустая, неопределена или null в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript разработчики регулярно сталкиваются с необходимостью проверки строковых значений на различные состояния. Валидация данных является критически важным. . .
Как проверить существование ключа в объекте или массиве в JavaScript
bytestream 25.01.2025
При разработке веб-приложений на JavaScript программисты постоянно сталкиваются с необходимостью работать с объектами и массивами. Эти структуры данных являются фундаментальными элементами языка и. . .
Как создать ArrayList из массива (array) в Java
bytestream 25.01.2025
При разработке программного обеспечения на языке Java программисты часто сталкиваются с необходимостью эффективного управления наборами данных. Массивы и ArrayList являются двумя фундаментальными. . .
Как сгенерировать случайные целые числа (int) в указанном диапазоне в Java
bytestream 25.01.2025
В программировании генерация случайных чисел является важнейшим инструментом для решения множества практических задач. От создания игровых механик до реализации алгоритмов машинного обучения, от. . .
Как сделать, чтобы grep выводил строки до и после найденной
hw_wired 25.01.2025
Утилита grep стала незаменимым инструментом для поиска и фильтрации информации в Unix-подобных операционных системах. Эта командная утилита позволяет осуществлять поиск строк, соответствующих. . .
Как клонировать определенную ветку в Git
bytestream 24.01.2025
Одной из ключевых функций Git является возможность клонирования веток, что позволяет создавать локальные копии удаленных репозиториев и работать с определенными версиями проекта. Этот механизм. . .
Как в цикле обойти строки DataFrame в Pandas Python
bytestream 24.01.2025
DataFrame представляет собой одну из основных структур данных в библиотеке Python Pandas, которая организует информацию в виде двумерной таблицы с строками и столбцами. Эта структура данных особенно. . .
Как получить имя текущей ветки в Git
bytestream 24.01.2025
При работе с Git часто возникает необходимость определить имя текущей ветки, в которой ведется разработка. Знание текущей ветки является критически важным аспектом для эффективного управления. . .
Как отсортировать массив объектов по значению поля объекта в JavaScript
bytestream 24.01.2025
При разработке веб-приложений на JavaScript разработчики часто сталкиваются с необходимостью работать с массивами объектов. Эти структуры данных представляют собой упорядоченные наборы элементов, где. . .
Ошибка "src refspec master does not match any" при пуше коммита в Git
bytestream 24.01.2025
При работе с системой контроля версий Git разработчики нередко сталкиваются с различными ошибками, одной из которых является сообщение "src refspec master does not match any". Эта ошибка возникает. . .
Как округлить не более двух цифр после запятой в JavaScript
bytestream 24.01.2025
При работе с числами в JavaScript разработчики часто сталкиваются с необходимостью округления десятичных значений до определенного количества знаков после запятой. Это особенно важно при работе с. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru