滚动到底部,但内容保持在顶部

本文关键字:顶部 底部 滚动 | 更新日期: 2023-09-27 18:21:43

我正在使用自己的扩展System.Windows.Forms.Datagrid。。。问题是,当附加行时,控件不能正确地向下滚动。

这是我使用的片段:

if (filasAInsertar.Length > 0)
{
    int row_count = niceDataGridDesvios.getVisibleRowsCount(niceDataGridDesvios.Parent) - 1;
    ExtendedDataGrid extendedDataGrid = niceDataGridDesvios.dataGrid;
    extendedDataGrid.getScrollBar().Value = extendedDataGrid.getScrollBar().Maximum;
    niceDataGridDesvios.dataGrid.selectFullRow(row_count);
}

这段代码使滚动条在底部运行,但内容保持在顶部。。。。你知道如何把它做好吗?已经尝试了.performLayout().Refresh(),得到了相同的结果。

希望你们能帮助我

滚动到底部,但内容保持在顶部

数据网格

要设置System.WindowsForms.DataGrid的当前行并滚动到该行,可以使用CurrentRowIndex属性:

datGrid1.CurrentRowIndex = 50;

例如滚动到最后一行:

datGrid1.CurrentRowIndex = d.BindingContext[datGrid1.DataSource].Count - 1;

DataGridView

CurrentCell

如果设置DataGridViewCurrentCell,则会选择指定的单元格并滚动以使该单元格可见。

例如,选择最后一行并滚动到它:

dataGridView1.CurrentCell = dataGridView1.Rows[this.dataGridView1.RowCount - 1].Cells[0];

首次显示滚动行索引

您也可以将FirstDisplayedScrollingRowIndex设置为滚动到特定行,但它不会选择行:

例如,只滚动到最后一行:

dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount-1;