在我的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/

10-15 21:12