水平滚动条在DataGridView上不可见

我在Window窗体上有一个DataGridView ,它填充了30列和数千行。 ScrollBars属性设置为Both ,但仍然不显示水平滚动条。 即使我无法用键盘上的箭头键滚动。

我通过将ScrollBars属性设置为Horizontal来尝试它,但这没有任何区别。

有什么建议吗?

谢谢

好伙计们,整理好了。

我正在回答我自己的问题; 它可能在将来帮助某人。

其中一列将Frozen属性设置为True 。 所有列都应该为false 。 现在ScrollBar对我来说非常好。

干杯

在此处输入图像描述

我知道这已经解决了,但我遇到了另一个可能发生这种情况的原因,所以我想把它作为一个答案添加,以防其他人遇到同样的问题。

如果您的表单有一个停靠填充表单的DataGridView,并且表单也有一个状态栏,那么根据它们的创建顺序,状态栏可以隐藏DataGridView的滚动条。 要解决此问题,请右键单击DataGridView,然后选择“Bring to Front”。

我有类似的问题。 我做的是,检查每个Datagrid列并将Frozen设置为“ false ”。 希望有所帮助。

对接。DGV的填充是一个小马车。
当您有多个停靠面板,工具栏等时会发生这种情况。在运行时创建列时更常见。

控件认为它比容器宽,并且水平滚动条不会产生。

冷冻,自动调节,前面的brint以及提到的其他补救措施并不总是有效。 最可靠的解决方法是Dock.Left并在运行时设置DGV的宽度。 这样DGV就不会对它的宽度感到困惑。

当我遇到这个恼人的问题时,这是由于DGV的AutoSizeColumnsMode属性设置为Fill

我通过将该属性更改为AllCells来修复它,但任何其他值都可以。 即使DGV停靠并且我有多个停靠面板,并且第一列是冻结,它也能工作。

我有这个恼人的问题。 我已经在我的表单上创建了DataGridView,并在.CS文件中设置了所有数据绑定和属性设置。

我刚刚在代码后面的文件(.cs)中注释了这一行

 gvTblContent.AutoSize = true; 

您无需设置AutoSize属性,默认情况下将提供水平和垂直滚动条,否则您可以使用:

 gvTblContent.ScrollBars = ScrollBars.Both; 

我也遇到了这个问题。 在我的情况下,这是一个愚蠢的情况。

请检查DataGridView的位置/大小是否超出表单。

我有同样的问题,发现我的dataGridView比它所用的forms略大。我调整了大小以适应表单,它工作! 希望这可以帮助!

在我的情况下,我只使用ANCHOR顶部,底部,左侧,右侧而不是DOCK Fill。

试试吧。

我身边的多个显示/隐藏列导致了同样的问题。 不得不添加dataGridView1.ScrollBars = ScrollBars.Both; 在我处理datagridview中的所有列和行之后

在此之前没有任何内容有帮助1.没有冻结列2.表单加载有dataGridView1.ScrollBars = ScrollBars.Both; 3.没有状态栏

我在VS2015中也遇到过winform这个问题。

winform的表格布局分为4行,1列。 在行中放置面板以放置除最后一行中的DataGrid行之外的其他控件。 DataGrid设置为Dock以填充。 表单底部还有一个状态栏,供将来使用。

我发现状态栏阻止了滚动条,如前所述。

我在表格布局中添加了另一行,但是在运行时和设计时都会在表单底部显示一个大的空白区域。 调整表单大小也没有解决。 我尝试设置表格布局的行高,但它不起作用。 我试过1像素,5像素等没有变化。 最后,我放弃并删除了状态栏,无论如何都没有使用它。

我有一个DataGridView坐在TableLayoutPanel的单元格内,并且DataGridView上都没有显示滚动条。 我认为DataGridView的大小也没有被正确管理,DataGridView被停靠以填充TableLayoutPanel的单元格。 我没有任何冷冻柱。

我能够通过将DataGridView放在Panel中,并在Panel上设置AutoScroll = true来修复它,让Panel管理滚动。 我停靠面板以填充TableLayoutPanel的单元格内部,并停靠DataGridView以填充Panel内部。

在我的情况下,Scroll bar直到我意识到上面的冻结列状态和只读时才出现。 我已经为只读列完成了冻结列,以及我的dataGridView的一个可编辑列。 当我为可编辑列删除frozen=false ,会出现水平条。

我将一些第一列冻结为真(H_bar)仍然有效。 但是我将frozen = true设置为一个不可见的列(column.visible = false),它就消失了。

我在tableLayoutPanel中遇到了与DataGridView相同的问题。

以上都没有帮助我。

事实certificate,DataGridView所在的tableLayoutPanel中的列设置为AutoSize

解决方案是将tableLayoutPanel列设置为实际值或百分比。