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

时间:2015-11-12 13:15:19

标签: c# winforms .net-2.0

我正在使用自己的扩展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(),结果相同。

希望你们能帮助我

1 个答案:

答案 0 :(得分:1)

数据网格

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

datGrid1.CurrentRowIndex = 50;

例如,滚动到最后一行:

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

的DataGridView

<强> CurrentCell

如果设置DataGridView的{​​{3}},则会选择指定的单元格并滚动以使单元格可见。

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

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

<强> FirstDisplayedScrollingRowIndex

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

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

dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount-1;