Datagridview需要隐藏滚动条,但滚动应该可以通过代码实现

时间:2012-07-17 19:10:47

标签: c# datagridview scroll

我有2个具有相同列数的Datagrids

Datagrid1仅显示标题, Datagrid2就在它下方,显示所有数据。 本质上,2网格需要同步显示为1格。

我的问题是我需要隐藏datagrid1的水平滚动条,但只显示datagrid2的滚动条。 当用户滚动datagrid2时,我需要以编程方式同步datagrid1上的标题。

有人可以建议吗?

4 个答案:

答案 0 :(得分:5)

试试这个..

dataGridViews1.ScrollBars = ScrollBars.None;

 private void dataGridViews2_Scroll(object sender, ScrollEventArgs e)
    {
       int offSetValue = dataGridViews1.HorizontalScrollingOffset;

      try 
          { 
            dataGridViews1.HorizontalScrollingOffset = offSetValue; 
          }
      catch { }

           dataGridViews1.Invalidate();
    }

答案 1 :(得分:2)

您可以设置DataGridViews ScrollBasr属性以隐藏垂直滚动条

e.g。

dataGridViews1.ScrollBars = ScrollBars.None;

或在链接中查看其他枚举值 http://msdn.microsoft.com/en-us/library/system.windows.forms.scrollbars

答案 2 :(得分:0)

您可以设置VerticalScrollingOffset值以将滚动条定位在所需的索引处。处理第二个DGV中的Scroll事件,并为第一个DGv设置此VerticalScrollingOffset。这应该有所帮助。

答案 3 :(得分:0)

我有和你一样的概念..我按照以下方式解决了它:可能对你有帮助。

private void dgvHeader_ColumnWidthChanged(object sender, DataGridViewColumnEventArgs e)
    {
        //When Header Grid Width Changes automatically Below Grid's COLUMN width will be changes
        dgvData.Columns[e.Column.Index].Width = e.Column.Width;
    }