DataGridView虽然有VerticalScrollBar属性, 但却是受保护的对象, 无法外部访问, 看了一下DataGridView的各项属性, 发现FirstDisplayedScrollingRowIndex就是滚动条的Value, DataGridView的行高乘以FirstDisplayedScrollingRowIndex就是客户区高度 .于是在AcceptChanges之前记录该值,然后之后再还原该值就可实现。
int r = DataGridView.FirstDisplayedScrollingRowIndex;
DataTable.AcceptChanges();
this.pnl.dgvMain.FirstDisplayedScrollingRowIndex = r;
外部链接