【问题标题】:Scroll to bottom of datagridview in VB.NET在 VB.NET 中滚动到 datagridview 的底部
【发布时间】:2020-11-11 21:01:12
【问题描述】:

使用 VB.NET 并尝试滚动到 datagridview 的底部。我读过的一切都说要设置 FirstDisplayedScrollingRowIndex 到 Rows.Count - 1,但这仅显示最后一行上方的行,并不会一直滚动到底部。我想这可能是 C# 到 VB 的事情,并且索引需要只是 Rows.Count,但这会引发错误,正如预期的那样,如果索引为 0。

我也尝试选择最后一行,但结果相同。

    If dgv.RowCount > 0 Then
       dgv.FirstDisplayedScrollingRowIndex = dgv.Rows.Count - 1
       dgv.Rows(dgv.Rows.Count -1).Selected = True
    End If

【问题讨论】:

  • 没试过这个,但是如果它是倒数第二个记录,如果你只是从上面的语句中去掉“-1”会发生什么?
  • 我刚刚为此编辑了帖子,我试了一下,它抛出了一个错误。
  • 您在代码中的什么位置放置了这些行?当我尝试使用示例 DGV 并将这些行放入构造函数中时,它将不起作用。但是,将它们移动到 Load 事件(或在 Click 事件之后)然后它会按预期工作
  • 我试着把它移到负载上,这似乎有帮助。它显示了所需行的顶部,而不是全部,但比以前更好。谢谢。
  • @JacquelynK,你能发一张网格的截图吗?

标签: vb.net datagridview


【解决方案1】:

选择最后一行:

dgv.CurrentCell = dgv.Rows(dgv.Rows.Count-1).Cells(dgv.CurrentCell.ColumnIndex)

【讨论】:

    【解决方案2】:

    我的解决方案是添加一个计时器,该计时器会计时几次,每次将 FirstDisplayedScrollingRowIndex 重置为最后一行并允许重绘网格。

    问题在于 CellFormatting 事件会根据内容动态更改行的高度。我相信每次需要重绘网格时都会触发此事件 - 例如滚动时。我假设它根据行的基本高度乘以行号来设置滚动点,但是格式将行向下推。不是最优雅的方法,但它对我有用。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-12-12
      • 1970-01-01
      • 2016-07-22
      • 1970-01-01
      • 1970-01-01
      • 2013-04-22
      • 2020-02-11
      • 1970-01-01
      相关资源
      最近更新 更多