Ho un programma che utilizza dataGridView per mostrare i dati che si aggiornano automaticamente ogni secondo aggiungendo le righe a dataGridView.DataGridView: scorri verso il basso automaticamente solo se lo scroll è in fondo
Quando voglio leggere qualcosa all'inizio, faccio scorrere verso l'alto, e anche quando i dati si aggiornano, la barra di scorrimento non va giù, è buona. Ma voglio che la barra di scorrimento si abbassi solo quando si trova nella parte inferiore di dataGridView.
Il comportamento che voglio quando viene aggiunta una nuova riga al testo:
se la barra di scorrimento si trova in fondo, scorrere verso il basso automaticamente. se la barra di scorrimento è altrove, non scorrere.
Il codice che ho scritto per questo e, purtroppo, non funziona è:
private void liveDataTable_Scroll(object sender, ScrollEventArgs e)
{
ScrollPosition = liveDataTable.FirstDisplayedScrollingRowIndex;
if (ScrollPosition == liveDataTable.RowCount - 1)
{
IsScrolledToBottom = true;
}
else
{
IsScrolledToBottom = false;
}
}
public void AddRowToDataGridMethod()
{
dataTable.Rows.Add();
if (dataWin.IsScrolledToBottom == true)
dataWin.LiveDataTable.FirstDisplayedScrollingRowIndex = (dataWin.ScrollPosition + 1);
else
dataWin.LiveDataTable.FirstDisplayedScrollingRowIndex = dataWin.ScrollPosition;
}
Date un'occhiata a questa domanda: http://stackoverflow.com/questions/378330/how-can-i-set-the-position-of-my-datagrid-scrollbar-in- my-winforms-app Dovrebbe risolvere il tuo problema. – jAC
possibile duplicato di [Scorrere fino alla fine di C# DataGridView] (http://stackoverflow.com/questions/9969061/scroll-to-bottom-of-c-sharp-datagridview) –