Показаны сообщения с ярлыком DataGridView. Показать все сообщения
Показаны сообщения с ярлыком DataGridView. Показать все сообщения

четверг, 7 марта 2013 г.

AutoSizeRowsMode и адские тормоза

Время отрисовки грида зависит кроме всего прочего, еще и от того, как определяется высота строк.

В варианте ниже жуткие тормоза из-за того, что идёт расчёт высоты всех строк. Если строк много, то этот расчёт может оказаться долгим.

grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;

Более быстрый и правильный вариант — определять высоту только тех ячеек, которые в данный момент отображаются на гриде. Совсем всё будет быстро, если использовать виртуальный грид, но об этом я напишу как-нибудь попозже.

grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.DisplayedCells;

понедельник, 17 декабря 2012 г.

Как в DataGridView сделать активной нужную строку?

«Выделенная» строка в DataGridView и «активная» строка — разные понятия. Выделенная строка может быть не активной. Для того, чтобы сделать активной нужную строку, необходимо записать:

this.grid.CurrentCell = this.grid.Rows[ i ].Cells[ 0 ];

где i — номер нужной строки.

среда, 12 декабря 2012 г.

Автоподбор высоты строки в DataGridView

Для того, чтобы высота строки стала соответствовать содержимому, необходимо выполнить команду:

this.grid.AutoSizeRowsMode = DataGridViewAutoSizeRowsMode.AllCells;