DataGridview перерисовывается очень медленно - PullRequest
1 голос
/ 16 февраля 2010

Я использую datagridview в приложении для Windows, разработанном в C # VS2005 .net 2.0.

Datagridview предоставляется список бизнес-объектов. Требуется досадная задержка в 2-3 секунды, прежде чем вы начнете отображать строки в виде таблицы в виде падающей шторки. Когда я переключаюсь обратно к своему приложению из любого другого окна, оно запускает процесс перекраски таким же образом, как и в случае с падающей шторкой. Это довольно раздражает. Пожалуйста, кто-нибудь, помогите мне разобраться!

Ответы [ 2 ]

1 голос
/ 22 февраля 2011

Я не знаю, почему это работает, но установка элемента управления DataGridView с двойной буферизацией работает абсолютно. Убедитесь, что свойство DoubleBuffered на форме хоста также имеет значение false.

После этого мой элемент управления сеткой перестал перерисовываться настолько медленно (независимо от объема данных), что вы могли почти пересчитать ячейки по мере их поступления, - перерисовать так же быстро, как и любой другой элемент управления.

Свойство DoubleBuffered защищено в DataGridView, поэтому вам нужно будет создать производный класс и установить там свойство, например:

class DoubleBufferDataGrid : DataGridView
{
    public DoubleBufferDataGrid()
        : base()
    {
        this.DoubleBuffered = true;
    }
}
0 голосов
/ 17 апреля 2010

У меня такая же проблема. GridView не привязан к источнику данных. Я сам строю GridView. Я получаю тот же эффект падающей шторки, когда меняю размер (увеличиваю) или прокручиваю вертикально. Это довольно плохо. Эффект тот же, если у меня есть 100 или 100000 строк. То же самое, если для DoubleBuffered установлено значение true или false.

Я искал в сети какие-либо подсказки относительно того, что может происходить, и пока ничего. Очень жаль, что парень, который начал эту тему, не подписался, или у нас уже может быть ответ.

...