DataGridView Sort немного изменяет положение сетки по горизонтали - PullRequest
1 голос
/ 05 августа 2010

У меня есть DataGridView с большим количеством столбцов, который вызывает горизонтальную полосу прокрутки.Тем не менее, когда я прокручиваю до конца вправо и сортирую по столбцу, представление данных слегка перегруппировывается, но полоса прокрутки остается полностью вправо.

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

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

Есть мысли?

1 Ответ

2 голосов
/ 05 августа 2010

Я решил это, выполнив следующие действия.

Я подписался на событие DataGridView.Scroll, если ScrollOrientation имеет значение Horizontal, тогда я устанавливаю переменную-член в NewValue прокрутки.

Затем я подписался на событие DataGridView.Sorted.В этом случае я установил HorizontalScrollingOffset в переменную-член.


int _horizontalOffsetStop;

private void Grid_Scrolled(object sender, ScrollEventArgs e)
{
     if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
     {
          _horizontalOffsetStop = e.NewValue;
     }
}

private void Grid_Sorted(object sender, EventArgs e)
{
     myGrid.HorizontalScrollingOffset = _horizontalOffsetStop;
}

...