[C#] Comment puis-je définir la position de ma barre de défilement DataGrid dans mon application WinForms?


Answers

Oui, certainement FirstDisplayedScrollingRowIndex . Vous aurez besoin de capturer cette valeur après une interaction de l'utilisateur, puis après le rechargement de la grille, vous devrez le remettre à l'ancienne valeur.

Par exemple, si le rechargement est déclenché par un clic sur un bouton, dans le gestionnaire de clic du bouton, vous pouvez avoir comme première ligne une commande qui place cette valeur dans une variable:

// Get current user scroll position
int scrollPosition = myGridView.FirstDisplayedScrollingRowIndex;

// Do some work
...

// Rebind the grid and reset scrolling
myGridView.DataBind;
myGridView.FirstDisplayedScrollingRowIndex = scrollPosition;
Question

Dans mon application Winforms C #, j'ai un DataGrid. Lorsque le DataGrid rechargera, je veux replacer la barre de défilement à l'endroit où l'utilisateur l'a défini. Comment puis-je faire ceci?

EDIT: J'utilise l'ancien contrôle WinGreads DataGrid, pas le plus récent DataGridView




Stockez vos valeurs de défilement vertical et horizontal dans une variable et les réinitialiser.

int v= dataGridView1.VerticalScrollingOffset ;
int h= dataGridView1.HorizontalScrollingOffset ;
//...reload
dataGridView1.VerticalScrollingOffset = v;
dataGridView1.HorizontalScrollingOffset =h;