C# DataGridView - 如何启用垂直滚动条



DataGridView (Form) 包含足够的行,以显示垂直滚动条。但它没有启用。移动的 Silder 丢失,按钮向上和按钮向下灰显。

=> 有一个垂直滚动条,但未启用。

我试过了:

  1. 填充数据网格视图后,控件将更新。
  2. 调整整个面板的大小。
  3. "冻结"属性为假。
  4. 我在单元格中单击,我可以使用向上和向下键滚动,但滚动条不会被启用。

如果我在运行时调整控件的大小(DataGridView 位于拆分面板上),则可以使用滚动条,例如现在已启用。

试试这个:

1.您的一列可能已将冻结属性设置为True

应该为所有列False

阿拉伯数字。将有问题的列的"自动调整大小模式"设置为"全部单元格

"

3.我的网格。DockStyle = DockStyle.Fill

  1. 您应该将填充数据网格视图停靠到面板
  2. 如果有一些冻结的行,请确保在将数据引入网格视图后设置这些行

如果之前设置了冻结行,则添加的行将采用第一行的默认样式,并且所有网格视图行都将具有 row.frozen = true 选项。这就是垂直滚动不会出现的原因。

setScrollBar 属性 of datagridview 是 Both。

同样的问题以及一些解决方法可以在这里找到:数据网格视图垂直滚动条未正确更新(表单错误?
这绝对是一个出现的 winforms 错误,例如,当 DGV 放置在选项卡控件的选项卡中时。

我在水平滚动条上遇到了类似的问题。在电网上做PerformLayout并没有解决这个问题。事实证明,我的情况是表单被禁用。我们有一个基础设施,可以在加载时禁用表单,异步加载一堆东西,最后启用表单。出于某种原因,这足以使滚动条在启用表单时保持禁用状态(就像在运行时调整表单大小的情况一样,启用滚动条)。所以对我来说,解决方案是在启用表单在网格上调用PerformLayout

我知道

这真的很老,但这让我沮丧了几个星期。

我在嵌套面板上有两个数据网格视图。 DataGridViews 是 Dock->Fill,它们所在的面板是附加嵌套面板中的 Dock->Fill。

调整表单大小时,垂直滚动条非常不可靠 - 通常滚动条可能可见但被禁用,即使我可以使用行中的向下箭头手动向下滚动网格。

最终的解决方案是使用"Tzachs"建议 - 在任何调整大小事件之后,在网格上调用"PerformLayout()"方法。这似乎是网格中的一个错误 - 当网格在嵌套面板上自动调整大小时,无法检测到需要滚动条。

至少PerformLayout()解决了我的问题。

最新更新