在我的C#winforms应用程序中,我有一个数据网格。重新加载数据网格时,我想将滚动条设置回用户设置的位置。我怎样才能做到这一点?
编辑:我正在使用旧的winforms DataGrid控件,而不是较新的DataGridView
最佳答案
实际上,您实际上并不直接与滚动条进行交互,而是设置FirstDisplayedScrollingRowIndex
。因此,在重新加载之前,请捕获该索引,一旦重新加载,请将其重置为该索引。
编辑:评论中的要点。如果您使用的是DataGridView
,则可以使用。如果您使用的是旧的DataGrid
,那么最简单的方法是从其继承。看到这里:Linkage
DataGrid具有 protected GridVScrolled方法,该方法可用于将网格滚动到特定行。若要使用它,请从DataGrid派生一个新的网格并添加ScrollToRow方法。
C#代码
public void ScrollToRow(int theRow)
{
//
// Expose the protected GridVScrolled method allowing you
// to programmatically scroll the grid to a particular row.
//
if (DataSource != null)
{
GridVScrolled(this, new ScrollEventArgs(ScrollEventType.LargeIncrement, theRow));
}
}
关于c# - 如何在winforms应用程序中设置数据网格滚动条的位置?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/378330/