C# DataGridView - 如何启用垂直滚动条
本文关键字:启用 垂直 滚动条 DataGridView 何启用 | 更新日期: 2023-09-27 18:35:48
DataGridView (Form) 包含足够的行,以显示垂直滚动条。但它没有启用。移动的 Silder 丢失,按钮向上和按钮向下灰显。
=> 有一个垂直滚动条,但未启用。
我试过了:
- 填充数据网格视图后,控件将更新。
- 调整整个面板的大小。
- "冻结"属性为假。
- 我在单元格中单击,我可以使用向上和向下键滚动,但滚动条不会被启用。
如果我在运行时调整控件的大小(DataGridView 位于拆分面板上),则可以使用滚动条,例如现在已启用。
试试这个:
1.您的一列可能已将冻结属性设置为True
。
应该为所有列False
。
阿拉伯数字。将有问题的列的"自动调整大小模式"设置为"全部单元格
"3.我的网格。DockStyle = DockStyle.Fill
- 您应该将填充数据网格视图停靠到面板
- 如果有一些冻结的行,请确保在将数据引入网格视图后设置这些行
如果之前设置了冻结行,则添加的行将采用第一行的默认样式,并且所有网格视图行都将具有 row.frozen = true
选项。这就是垂直滚动不会出现的原因。
setScrollBar 属性 of datagridview 是 Both。
同样的问题以及一些解决方法可以在这里找到:数据网格视图垂直滚动条未正确更新(表单错误?
这绝对是一个出现的 winforms 错误,例如,当 DGV 放置在选项卡控件的选项卡中时。
我在水平滚动条上遇到了类似的问题。在电网上做PerformLayout
并没有解决这个问题。事实证明,我的情况是表单被禁用。我们有一个基础设施,可以在加载时禁用表单,异步加载一堆东西,最后启用表单。出于某种原因,这足以使滚动条在启用表单时保持禁用状态(就像在运行时调整表单大小的情况一样,启用滚动条)。所以对我来说,解决方案是在启用表单后在网格上调用PerformLayout
。
这真的很老,但这让我沮丧了几个星期。
我在嵌套面板上有两个数据网格视图。 DataGridViews 是 Dock->Fill,它们所在的面板是附加嵌套面板中的 Dock->Fill。
调整表单大小时,垂直滚动条非常不可靠 - 通常滚动条可能可见但被禁用,即使我可以使用行中的向下箭头手动向下滚动网格。
最终的解决方案是使用"Tzachs"建议 - 在任何调整大小事件之后,在网格上调用"PerformLayout()"方法。这似乎是网格中的一个错误 - 当网格在嵌套面板上自动调整大小时,无法检测到需要滚动条。
至少PerformLayout()解决了我的问题。