【问题标题】:Data Grid View VB.net 2013 , How many rows and which are visible in window?Data Grid View VB.net 2013,有多少行,哪些在窗口中可见?
【发布时间】:2014-08-28 12:12:25
【问题描述】:

我的表单窗口上有一个 10 行的 datagridview 控件。

现在假设表单中datagridview的大小只能向用户显示5行,用户必须使用垂直滚动条才能看到其他5行。

现在我的问题是:

有没有办法根据滚动条的位置知道用户当前可以看到哪5行。

实际上,目前在我的程序中,我正在不断更新该 datagridview 表中的所有行值。

现在我只想更新窗口中可见的行。那么我如何知道根据滚动条位置可见哪些行。

提前致谢

【问题讨论】:

  • 刚刚发现有一个DataGridView.DisplayedRowCount 方法可以计算窗口中可见的行数。所以现在解决了一个问题,接下来如何知道哪个是可见窗口的顶行或底行。

标签: vb.net visual-studio-2013


【解决方案1】:

DataGridView 控件公开了一个VerticalScrollingOffset 属性,该属性可用于确定视图滚动的距离。如果您知道DataGridView 中每一行的高度(以像素为单位),那么您就可以计算表格的哪些行当前可见并刷新它们。

每行的高度可以通过DataGridViewRow属性Height来确定。这默认为字体高度加上 9 个像素 - 如果您在所有行中使用相同的字体大小,这应该是一致的。

编辑: 进一步挖掘文档显示每个DataGridViewRow 公开一个Displayed 属性,当行在用户屏幕上可见时返回true。检查会容易得多!

MSDN on DataGridViewRow.Displayed property

【讨论】:

  • 能否请您告诉如何计算或获取行高。
  • @luck 再次更新。比我原先想象的要容易得多!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多