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

时间:2017-05-23 17:50:29

标签: c# .net datagridview scrollbar

我有一个放在用户无法直接与之交互的表单上的DataGridView。必须禁用该表单才能实现此效果,因此我的DataGridView也被禁用。这意味着滚动条显示为灰色,并且不显示用户在控件中的当前位置。当用户使用另一种形式时,用户可以使用滚动浏览DataGridView,因此重要的是他们能够知道列表的大小和它们在哪里。

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

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

1 个答案:

答案 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;