在dataGridView中更改垂直滚动条的宽度

时间:2016-11-11 14:57:47

标签: c# datagridview scrollbar

我正在为触摸屏开发应用程序。我被要求使滚动条的大小更大,以便用户可以使用它们。到目前为止,我还没有能够对此进行排序。我读到如果你增加MainForm窗口滚动条的宽度,那么dataGridView将继承它。我尝试过一些东西,但到目前为止还没有让它发挥作用。

我尝试的两种最接近的方式是

1)当我构建网格时,我添加以下

 foreach (Control ctrl in dataGridView1.Controls)
    if (ctrl.GetType() == typeof(VScrollBar))
       ctrl.Width = 86;

不幸的是,这似乎得到宽度为17但不能用这个新值86覆盖它。

接下来我把它放到我构建MainForm的地方仍然没有好处,垂直滚动条仍然看起来一样。

2)我发现我可以从工具箱中添加滚动条。这里有一点进展,直到我尝试连接到dataGridView。这个我做不到。我有一个事件所以每次移动我都应该能够移动网格。下面列出的是我用来确保获得价值的一些项目。

 private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)
    {
        //MessageBox.Show(vScrollBar1.Value.ToString());
       // MessageBox.Show(SystemInformation.VerticalScrollBarWidth.ToString());
      //  CalculateVerticalScrollbarWidth() * 4;
    }

所以我想我会问比我更聪明的观众,因为有人可能已经解决了这个问题,并会与我分享答案。

1 个答案:

答案 0 :(得分:6)

您可以关闭DGV的垂直滚动条:

dataGridView1.ScrollBars = ScrollBars.Horizontal;

然后添加VerticalScrolllBar控件。确保将其大小保持在snych以及Maximum

vScrollBar1.Maximum = dataGridView1.RowCount;

滚动同步代码 Scroll个事件:

private void dataGridView1_Scroll(object sender, ScrollEventArgs e)
{
    vScrollBar1.Value = e.NewValue;
}


private void vScrollBar1_Scroll(object sender, ScrollEventArgs e)
{
   dataGridView1.FirstDisplayedScrollingRowIndex = e.NewValue;
}

enter image description here