По событию загрузки формы выполняю следующий код
DoubleBuffered = true;
dgvPersCard.AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.None;
dgvPersCard.VirtualMode = true;
string error;
DataTable dt = _repository.GetAllCards2(out error);
if (error != string.Empty)
{
MessageBox.Show("Помилка ініціалізації.\nТехнічна інформація: " + error, "Помилка");
return;
}
dgvPersCard.DataSource = dt;
код выполняется быстро. Дальше происходит отрисовка формы и грида dgvPersCard, которая заметна на глаз. Приложил ссылку на видео. Подскажите, пожалуйста, это нормальная скорость работы грида или можно ускорить каким то образом? https://drive.google.com/open?id=1broJsXdhXp_5Soo5_HCRAL6hyH-6MIPe
Двойная буферизация поможет радикально ускорить отрисовку грида. Только включать её нужно именно у грида, а не у формы.
Свойство DoubleBuffered у компонента DataGridView является защищённым, поэтому напрямую его установить нельзя. Придётся создать унаследованный класс.
class DoubleBufferedDataGridView : DataGridView
{
protected override bool DoubleBuffered { get => true; }
}
Добавьте его в свой проект. Скомпилируйте. Далее используйте его вместо стандартного грида. Скорость отрисовки приятно удивляет.
В вашем коде, я вижу, включена виртуализация датагрида. Между тем вы ей не пользуетесь и загоняете в грид сразу все данные. Между тем, если её грамотно применить - обработать событие NewRowNeeded - то можно и с источниками данных в миллионы строк комфортно работать.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости