我正在使用自己的扩展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()
,结果相同。
希望你们能帮助我
答案 0 :(得分:1)
要设置System.WindowsForms.DataGrid
的当前行并滚动到该行,您可以使用CurrentRowIndex
属性:
datGrid1.CurrentRowIndex = 50;
例如,滚动到最后一行:
datGrid1.CurrentRowIndex = d.BindingContext[datGrid1.DataSource].Count - 1;
<强> CurrentCell 强>
如果设置DataGridView
的{{3}},则会选择指定的单元格并滚动以使单元格可见。
例如,选择最后一行并滚动到它:
dataGridView1.CurrentCell = dataGridView1.Rows[this.dataGridView1.RowCount - 1].Cells[0];
<强> FirstDisplayedScrollingRowIndex 强>
您也可以将CurrentCell
设置为滚动到特定行,但不会选择该行:
例如,只滚动到最后一行:
dataGridView1.FirstDisplayedScrollingRowIndex = dataGridView1.RowCount-1;