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

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

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

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

谁有人建议?

试试这个..

 dataGridViews1.ScrollBars = ScrollBars.None; private void dataGridViews2_Scroll(object sender, ScrollEventArgs e) { int offSetValue = dataGridViews1.HorizontalScrollingOffset; try { dataGridViews1.HorizontalScrollingOffset = offSetValue; } catch { } dataGridViews1.Invalidate(); } 

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

例如

 dataGridViews1.ScrollBars = ScrollBars.None; 

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

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

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

 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; }