Как DataGridVIew проскролить до определенной позиции?
От: Аноним  
Дата: 04.11.07 17:34
Оценка:
собственно сабж. К DataGridView через BindingSource подцеплены 50 строк. Затем я прокручиваю список до конца и добавляю еще в BindingSource 50 строк и делаю ResetBindings(false). В результате список автоматически прокручивается чтобы была видимой выделенная строка (она самая первая). А мне нужно чтобы остались видимыми те строки, которые были видимы до добавления элементов.
Также желательно чтобы не наблюдался эффект, что список сначала отображатеся сначала, а потом скролится вниз до нужной отметки. Хотелось бы просто увидеть те же строки что и до добавления новых (просто чтобы полоска скролинга изменила свои размеры за счет того что в конец списка были добавлены новые элементы).

04.11.07 21:02: Перенесено модератором из '.NET' — AndrewVK
Re: Как DataGridVIew проскролить до определенной позиции?
От: voytovich_slava  
Дата: 05.11.07 07:36
Оценка:
Здравствуйте, Аноним, Вы писали:

А> собственно сабж. К DataGridView через BindingSource подцеплены 50 строк. Затем я прокручиваю список до конца и добавляю еще в BindingSource 50 строк и делаю ResetBindings(false). В результате список автоматически прокручивается чтобы была видимой выделенная строка (она самая первая). А мне нужно чтобы остались видимыми те строки, которые были видимы до добавления элементов.

А> Также желательно чтобы не наблюдался эффект, что список сначала отображатеся сначала, а потом скролится вниз до нужной отметки. Хотелось бы просто увидеть те же строки что и до добавления новых (просто чтобы полоска скролинга изменила свои размеры за счет того что в конец списка были добавлены новые элементы).

Запомни BindingSource.Position до обновления и потом восcтанови его. При изменении этого свойства происходит смещение указателя в связанном с ним DataGridView.
Re[2]: Как DataGridVIew проскролить до определенной позиции?
От: Аноним  
Дата: 05.11.07 11:44
Оценка:
Здравствуйте, voytovich_slava, Вы писали:

_>Здравствуйте, Аноним, Вы писали:


А>> собственно сабж. К DataGridView через BindingSource подцеплены 50 строк. Затем я прокручиваю список до конца и добавляю еще в BindingSource 50 строк и делаю ResetBindings(false). В результате список автоматически прокручивается чтобы была видимой выделенная строка (она самая первая). А мне нужно чтобы остались видимыми те строки, которые были видимы до добавления элементов.

А>> Также желательно чтобы не наблюдался эффект, что список сначала отображатеся сначала, а потом скролится вниз до нужной отметки. Хотелось бы просто увидеть те же строки что и до добавления новых (просто чтобы полоска скролинга изменила свои размеры за счет того что в конец списка были добавлены новые элементы).

_>Запомни BindingSource.Position до обновления и потом восcтанови его. При изменении этого свойства происходит смещение указателя в связанном с ним DataGridView.


Не катит такой вариант . Дело в том, что Position — это позиция выделенного элемента в списке. А когда я скролю список вниз, то выделен всегда элемент с индексов 0 и соответственно, список восстанавливается именно на этот 0-ой, а мне нужно чтобы после добавления элементов в конец список по факту отображались ровно те элементы, который отображались до этого.
Re[2]: Как DataGridVIew проскролить до определенной позиции?
От: Аноним  
Дата: 05.11.07 12:27
Оценка:
Здравствуйте, voytovich_slava, Вы писали:

_>Здравствуйте, Аноним, Вы писали:


А>> собственно сабж. К DataGridView через BindingSource подцеплены 50 строк. Затем я прокручиваю список до конца и добавляю еще в BindingSource 50 строк и делаю ResetBindings(false). В результате список автоматически прокручивается чтобы была видимой выделенная строка (она самая первая). А мне нужно чтобы остались видимыми те строки, которые были видимы до добавления элементов.

А>> Также желательно чтобы не наблюдался эффект, что список сначала отображатеся сначала, а потом скролится вниз до нужной отметки. Хотелось бы просто увидеть те же строки что и до добавления новых (просто чтобы полоска скролинга изменила свои размеры за счет того что в конец списка были добавлены новые элементы).

_>Запомни BindingSource.Position до обновления и потом восcтанови его. При изменении этого свойства происходит смещение указателя в связанном с ним DataGridView.


Также этот вариант не катит еще потому, что при установке Position меняется выделение на DataGridView, а нужно просто проскролить до текущей позиции.
Re: Как DataGridVIew проскролить до определенной позиции?
От: BokiyIS  
Дата: 08.11.07 10:55
Оценка:
Здравствуйте, Аноним, Вы писали:

Возможно это поможет:


//сохраняем позицию скролла
int scrollPosition = dataGridView.FirstDisplayedScrollingRowIndex;

...

//восстанавливаем позицию скролла
dataGridView.FirstDisplayedScrollingRowIndex = scrollPosition;
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.