C# 水平滚动条在DataGridView上不可见

C# 水平滚动条在DataGridView上不可见,c#,.net,winforms,datagridview,scrollbar,C#,.net,Winforms,Datagridview,Scrollbar,我在窗口窗体上有一个DataGridView,其中填充了30列和数千行。 ScrollBars属性设置为Both,但水平滚动条仍然不可见。甚至我也无法用键盘上的箭头键滚动 我通过将ScrollBars属性设置为Horizontal来尝试它,但这没有任何区别 有什么建议吗 谢谢大家,事情已经解决了 我在回答我自己的问题;它可能在将来帮助某人 其中一列的freezed属性设置为True。对于所有列,该值应为false。 现在ScrollBar对我来说绝对正常 干杯 我遇到了这个令人恼火的问题。我已经

我在窗口窗体上有一个
DataGridView
,其中填充了30列和数千行。
ScrollBars
属性设置为
Both
,但水平滚动条仍然不可见。甚至我也无法用键盘上的箭头键滚动

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

有什么建议吗


谢谢大家,事情已经解决了

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

其中一列的
freezed
属性设置为
True
。对于所有列,该值应为
false
。 现在ScrollBar对我来说绝对正常

干杯


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

我刚刚注释了代码隐藏文件(.cs)中的行,即

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

gvTblContent.ScrollBars = ScrollBars.Both;

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


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

对接。DGV的填充有点问题。
当您有多个停靠面板、工具栏等时,就会发生这种情况。 在运行时创建列时更常见

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

冻结、自动调整大小、将布林特放在前面以及提到的其他补救措施并不总是有效。 最可靠的解决方法是在运行时停靠.Left并设置DGV的宽度。
这样DGV就不会对它的宽度感到困惑。

我也遇到了这个问题。对我来说,这是一个愚蠢的情况


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

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


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

我也遇到了同样的问题,发现我的dataGridView比它所在的表单稍大一些。我调整了尺寸以适应表格,效果很好!
希望这有帮助

在我的例子中,我只是使用了锚顶、锚底、锚左、锚右而不是船坞填充


试试看。

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

我这边的多个显示/隐藏列导致了相同的问题。不得不补充 dataGridView1.ScrollBars=滚动条。两者都是;在我处理datagridview中的所有列和行之后

在那之前,上述任何一点都没有帮助 1.无冻结柱 2.表单加载有dataGridView1.ScrollBars=ScrollBars;
3.没有状态栏

我在winform上的VS2015中也遇到了这个问题

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

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


我在表布局中添加了另一行,但在运行时和设计时,都会在表单底部显示一个很大的空白。调整表单大小也无法解决此问题。我尝试设置表格布局的行高,但没有成功。我尝试了1像素,5像素等,没有变化。最后,我放弃并删除了状态栏,反正也没有使用它。

我有一个DataGridView位于TableLayoutPanel的一个单元格中,DataGridView上没有显示任何滚动条。我认为DataGridView的大小也没有得到适当的管理,DataGridView被停靠以填充TableLayoutPanel的一个单元格。我没有任何冻结柱


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

在我的例子中,滚动条直到我意识到上面的冻结列状态和只读时才出现。我已经为只读列以及我的
dataGridView
中的一个可编辑列创建了冻结列。当我删除可编辑列的
freezed=false
时,会出现水平条。

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

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

以上这些对我都没有帮助

事实证明,DataGridView所在的tableLayoutPanel中的列被设置为自动调整大小


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

所有冻结的列都应放入表单中。 否则水平滚动条不会显示。
如果没有水平滚动条,则将窗体加宽,直到看到上次冻结的字段,然后水平滚动条将神奇地出现。

我遇到了类似的问题,而不是由于
冻结的问题。
gvTblContent.ScrollBars = ScrollBars.Both;
dgv.PerformLayout()