DataGridView (Form) 包含足够的行以显示垂直滚动条。但它没有启用。移动的 Silder 丢失,Button Up 和 Button Down 显示为灰色。
=> 有一个垂直滚动条但未启用。
我试过:
- 填充 DataGridView 后,控件将更新。
- 调整整个面板的大小。
- 冻结属性为假。
- 我在一个单元格中单击我可以使用向上和向下键滚动,但滚动条将不会启用。
如果我在运行时调整控件的大小(DataGridView 在拆分面板上),则可以使用滚动条,例如它现在已启用。
DataGridView (Form) 包含足够的行以显示垂直滚动条。但它没有启用。移动的 Silder 丢失,Button Up 和 Button Down 显示为灰色。
=> 有一个垂直滚动条但未启用。
我试过:
如果我在运行时调整控件的大小(DataGridView 在拆分面板上),则可以使用滚动条,例如它现在已启用。
试试这个:
1.您的列之一可能已冻结属性设置为True
。
这应该False
适用于所有列。
2. 设置问题列的AutoSizeMode为AllCells
3. mygrid.DockStyle = DockStyle.Fill
设置 datagridview 的 ScrollBar 属性为 Both。
可以在此处找到相同的问题以及一些解决方法:
DataGridView 垂直滚动条未正确更新(表单错误?)
这似乎是一个出现的 winforms 错误,例如,当 DGV 放置在选项卡控件的选项卡内时。
如果您之前设置了冻结行,则添加的行将采用第一行的默认样式,并且您的所有 gridview 行都将具有选项row.frozen = true
。这就是垂直滚动不会出现的原因。
水平滚动条也有类似的问题。在网格上做PerformLayout
并没有解决它。事实证明,我的问题是表单被禁用。我们有一个基础设施,它在加载时禁用表单,异步加载一堆东西,最后启用表单。出于某种原因,这足以让滚动条在启用表单时保持禁用状态(就像在您的场景中在启用滚动条时调整表单大小一样)。所以对我来说,解决方案是在启用表单后PerformLayout
调用网格。