Имеется база данных из нее вытаскивается таблица, но не вся, а только нужные поля для отображения.
Как запихать все это в DataGrid я знаю и знаю несколько способов, но тут задача несколько другая, нужно получить что-то типа того что на данном скриншоте:
Как бы странно это не звучало, но скриншот сделан с моей программы и вы конечно подумаете зачем я тогда вас спрашиваю как это сделать, но меня интересует как это сделать ПРАВИЛЬНО, т.е. с наименьшей нагрузкой на железо.
Как делаю я (только не кидайте камнями, я только учусь):
1) выгружаю таблицу
2) прохожу по всем записям таблицы
2.1) добавляю по одной записи в DataGrid, добавляя в нужные поля картинки (они для удобного управления)
2.2) изменяю цвета ячеек последней добавленной записи
код выглядит примерно так:
Dim d_Table As DataTable Dim d_Row As DataGridViewRow d_Table = Orders_GetTable(GetFilter(cOrder.sREAD), GetParams(cOrder.sREAD)) For i As Integer = 0 To d_Table.Rows.Count - 1 dgv_Orders.Rows.Add(New Object() {d_Table(i).Item(0), d_Table(i).Item(1), "", d_Table(i).Item(2), d_Table(i).Item(3), d_Table(i).Item(4), "", d_Table(i).Item(5), My.Resources.stat_11, My.Resources.order_edit, My.Resources.order_delete}) d_Row = dgv_Orders.Rows(dgv_Orders.Rows.Count - 1) If Sett.Orders.VisibleColor = True Then d_Row.Cells(1).Style.BackColor = Color1 d_Row.Cells(2).Style.BackColor = Color0 d_Row.Cells(6).Style.BackColor = Color0 End If Next
Просто на моем рабочем компьюторе (впринципе уже стареньком) все работает быстро на 10 записях иногда мерцает при обновлении, но на более слабых (на пенках) даже при 10 записях уже идет плавная отрисовка, вот почему я и задался вопросом по оптимизации данного момента.
Можно ли как-нибудь это оптимизировать или хотя бы скрыть на время отрисовку, чтоб сразу показывался результат?
Но лучше подскажите по оптимизации.