我有一个放在用户无法直接与之交互的表单上的DataGridView。必须禁用该表单才能实现此效果,因此我的DataGridView也被禁用。这意味着滚动条显示为灰色,并且不显示用户在控件中的当前位置。当用户使用另一种形式时,用户可以使用↑和↓滚动浏览DataGridView,因此重要的是他们能够知道列表的大小和它们在哪里。
我的问题是:如何在已禁用的DataGridView上显示垂直滚动条?
注意:许多人通过启用DataGridView并将ReadOnly属性设置为true来解决此问题。这对我不起作用,因为必须禁用父表单。
答案 0 :(得分:1)
如果禁用了网格,则无法启用滚动条。
在下面的链接中查找注释: 禁用可滚动控件时,滚动条也会被禁用。例如,禁用的多行文本框无法滚动显示所有文本行。
SRC:https://msdn.microsoft.com/en-us/library/system.windows.forms.control.enabled(v=vs.110).aspx
但你可以用不同的方式实现目标。
请尝试以下内容,解释就在评论中。
//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;