C# 在禁用的DataGridView上显示垂直滚动条

C# 在禁用的DataGridView上显示垂直滚动条,c#,.net,datagridview,scrollbar,C#,.net,Datagridview,Scrollbar,我有一个DataGridView,它放在用户无法直接与之交互的表单上。必须禁用该表单才能实现此效果,因此我的DataGridView也将被禁用。这意味着滚动条变灰,不显示用户在控件中的当前位置。用户可以使用↑ 及↓ 当它们以另一种形式出现时,它们能够知道列表有多大以及它们在其中的位置是很重要的 我的问题是:如何在禁用的DataGridView上显示垂直滚动条 注意:许多人通过启用DataGridView并将ReadOnly属性设置为true来解决这个问题。这对我不起作用,因为必须禁用父窗体。如果

我有一个DataGridView,它放在用户无法直接与之交互的表单上。必须禁用该表单才能实现此效果,因此我的DataGridView也将被禁用。这意味着滚动条变灰,不显示用户在控件中的当前位置。用户可以使用↑ 及↓ 当它们以另一种形式出现时,它们能够知道列表有多大以及它们在其中的位置是很重要的

我的问题是:如何在禁用的DataGridView上显示垂直滚动条


注意:许多人通过启用DataGridView并将ReadOnly属性设置为true来解决这个问题。这对我不起作用,因为必须禁用父窗体。

如果禁用网格,则无法启用滚动条

在下面的链接中查找注释:当可滚动控件被禁用时,滚动条也被禁用。例如,禁用的多行文本框无法滚动显示所有文本行。

SRC:

但你可以用不同的方式实现你的目标

尝试下面的方法,解释在注释中

           //INSTEAD OF DISABLING FORM, DISABLE ALL THE CONTROLS IN THE FORM
            foreach (var pb in this.Controls.OfType<Control>())
            {
                pb.Enabled = false;
            }

            //NOW ENABLE THE DATAGRID VIEW
            this.dataGridView1.Enabled = true;

            //MAKE DATAGRID VIEW READ ONLY
            this.dataGridView1.ReadOnly = true;
//禁用表单中的所有控件,而不是禁用表单
foreach(this.Controls.OfType()中的var pb)
{
pb.Enabled=false;
}
//现在启用DATAGRID视图
this.dataGridView1.Enabled=true;
//使DATAGRID视图为只读
this.dataGridView1.ReadOnly=true;

如果禁用网格,滚动条将无法工作。感谢您的建议,但正如我在问题中所述,我需要禁用表单本身,因此这不是可行的解决方法。您是否有消息来源声称他们无法启用滚动条?@NathanVanDyken在此链接中查找注意事项:当可滚动控件被禁用时,滚动条也被禁用。例如,禁用的多行文本框无法滚动显示所有文本行。使Datagridview只读仍允许grid view的内容保持功能,例如单元格内的复选框仍可以单击