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

Оптимизация проверки ячеек DataGridView

09.06.2015, 09:55. Показов 1716. Ответов 2
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Доброго времени суток
У меня есть одна dgv - табличка в ней бывает ~600 строк, в которых менее 10 колонок. Производится очень много различных проверок на то что именно записано в ячейках, по этим результатам меняется форматирование как целой строки так и конкретной ячейки. Меняется порядок строк, соответственно текст внутри и прочее. В общем производится постоянная сверка достаточно большего объема данных с данными объема чуть поменьше. Поскольку новые проверки только добавляются на машинах послабже начинает притормаживать.

Перебор происходит не исходника DataSorсe а самих строк dgv с тем чтобы сразу же править внешний вид для отображения.

msdn: со этой информацией я ознакомился. Прошу тех кто сталкивался с подобной проблемой поделится опытом в том где именно может быть узкое горлышко, где больше всего происходит нагрузка на ресурсы машины и на что обратить внимание в первую очердь и как можно оптимизировать.
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
09.06.2015, 09:55
Ответы с готовыми решениями:

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

Заполнение ячеек в DataGridView
Здравствуйте! есть вот такая таблица в datagridview. как прописать код в ячейку,чтобы количество отметок не равных "0" в ...

Сумма ячеек datagridview
Здравствуйте, столкнулся с проблемой, нужно посчитать сумму елементов двох столбцов dataGridView2.RowCount = dataGridView1.RowCount; ...

2
1168 / 886 / 517
Регистрация: 09.04.2014
Сообщений: 2,102
09.06.2015, 10:29
Лучший ответ Сообщение было отмечено amwrag как решение

Решение

Цитата Сообщение от amwrag Посмотреть сообщение
где именно может быть узкое горлышко
обычно в перерисовке при каждом изменении, соответсвенно нужно ее заблокировать на время масовых изменений ячеек. Поскольку в DataGridView нет аналога BeginUpdate/EndUpdate, то можно использовать способ предложенный тут:
C#
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
public static class ControlHelper
{
    [DllImport("user32.dll", EntryPoint = "SendMessageA", ExactSpelling = true, CharSet = CharSet.Ansi, SetLastError = true)]
    private static extern int SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
    private const int WM_SETREDRAW = 0xB;
 
    public static void SuspendDrawing(this Control target)
    {
        SendMessage(target.Handle, WM_SETREDRAW, 0, 0);
    }
 
    public static void ResumeDrawing(this Control target) { ResumeDrawing(target, true); }
    public static void ResumeDrawing(this Control target, bool redraw)
    {
        SendMessage(target.Handle, WM_SETREDRAW, 1, 0);
 
        if (redraw)
        {
            target.Refresh();
        }
    }
}
и использовать так:
C#
1
2
3
4
5
dataGridView1.SuspendDrawing();
 
// тут вносим массовые изменения в ячейки 
 
dataGridView1.ResumeDrawing();
1
0 / 0 / 0
Регистрация: 24.09.2012
Сообщений: 70
09.06.2015, 15:25  [ТС]
А как не счет использования DataGridView.CellFormatting который настоятельно советует msdn? Допустим сохранять где-нибудь в поле текстовые обозначения цветов и форматов, а потом через этот обработчик конвертить в конечный вид для пользователя.
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
09.06.2015, 15:25
Помогаю со студенческими работами здесь

Значения ячеек datagridview
Здрасте. Есть необходимость очищать значения ячеек в datagridview, а затем восстанавливать их. С очисткой я разобралась, а вот как...

Закраска ячеек DataGridView
Ячейки то закрашиваются, но при повторном поиске закраска добавляется...Конечно можно в цикл все забить, а как по другому можно одной...

Объединение ячеек в DataGridView
Привет всем. Нужна помощь. Есть контролл DataGridView. Мне организовать так таблицу, чтобы некоторые ячейки были склеены и тд. Грубо...

Закрашивание ячеек DataGridView
Как зделать что бы при изменения значения из ячейки 2 ячейки 3,5 красились. Я понемаю что это выглядит где-то private void...

Выделение ячеек dataGridview
Доброго времени суток, форумчане. Проблема у меня такая: есть датаГрид в котором очень много строк, каждая строка выделяется каким-то...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Новые блоги и статьи
Доступность команды формы по условию
Maks 07.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: сделать доступной кнопку (команда формы "ЗавершитьСписание") при. . .
Уведомление о неверно выбранном значении справочника
Maks 06.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "НарядПутевка", разработанного в конфигурации КА2. Задача: уведомлять пользователя, если в документе выбран неверный склад. . .
Установка Qt Creator для C и C++: ставим среду, CMake и MinGW без фреймворка Qt
8Observer8 05.04.2026
Среду разработки Qt Creator можно установить без фреймворка Qt. Есть отдельный репозиторий для этой среды: https:/ / github. com/ qt-creator/ qt-creator, где можно скачать установщик, на вкладке Releases:. . .
AkelPad-скрипты, структуры, и немного лирики..
testuser2 05.04.2026
Такая программа, как AkelPad существует уже давно, и также давно существуют скрипты под нее. Тем не менее, прога живет, периодически что-то не спеша дополняется, улучшается. Что меня в первую очередь. . .
Отображение реквизитов в документе по условию и контроль их заполнения
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "ПланированиеСпецтехники", разработанного в конфигурации КА2. Данный документ берёт данные из другого нетипового документа. . .
Фото всей Земли с борта корабля Orion миссии Artemis II
kumehtar 04.04.2026
Это первое подобное фото сделанное человеком за 50 лет. Снимок называют новым вариантом легендарной фотографии «The Blue Marble» 1972 года, сделанной с борта корабля «Аполлон-17». Новое фото. . .
Вывод диалогового окна перед закрытием, если документ не проведён
Maks 04.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать программный контроль на предмет проведения документа. . .
Программный контроль заполнения реквизитов табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: 1. Реализовать контроль заполнения реквизита. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru