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

时间:2012-05-31 11:53:45

标签: c# .net datagridview

DataGridView(Form)包含足够的行,显示垂直滚动条。但它没有启用。缺少运动的Silder,按钮向上和按钮向下显示为灰色。

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

我试过了:

  1. 填充DataGridView后,控件将更新。
  2. 调整整个面板的大小。
  3. Frozen属性为false。
  4. 我单击一个单元格,我可以使用向上和向下键滚动,但滚动条将不会启用。
  5. 如果我在运行时调整Control的大小(DataGridView在Splitpanel上),可以使用Scrollbar,例如现在已启用。

5 个答案:

答案 0 :(得分:7)

试试这个:

1。您的某个列可能已冻结属性设置为True

所有列都应为False

<强> 2 将有问题列的AutoSizeMode设置为AllCells

3. mygrid.DockStyle = DockStyle.Fill

答案 1 :(得分:1)

设置datagridview的ScrollBar属性为Both。

答案 2 :(得分:1)

同样的问题加上一些解决方法可以在这里找到: DataGridView vertical scrollbar not updating properly (Forms bug?)
它似乎肯定是一个出现的winforms错误,例如当DGV放在tabcontrol的标签内时。

答案 3 :(得分:1)

  1. 您应该将数据网格视图填充到面板
  2. 如果您有一些冻结的行,请确保在完成将数据添加到gridview后设置这些行
  3. 如果您之前设置了冻结的行,则添加的行将采用第一行的默认样式,并且所有gridview行都将具有选项row.frozen = true。这就是垂直滚动不会出现的原因。

答案 4 :(得分:0)

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