我有2个具有相同列数的Datagrids
Datagrid1
仅显示标题,
Datagrid2
就在它下方,显示所有数据。
本质上,2网格需要同步显示为1格。
我的问题是我需要隐藏datagrid1
的水平滚动条,但只显示datagrid2
的滚动条。
当用户滚动datagrid2
时,我需要以编程方式同步datagrid1
上的标题。
有人可以建议吗?
答案 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;
}