实现我有2个DataGrid中有相同数量的列的DataGridView需要隐藏滚动条,而滚动应该通过代码
Datagrid1
是只显示标题, Datagrid2
的是它下面显示的所有数据。实质上,2格表示需要同步以显示为1格。
我的问题是我需要隐藏datagrid1
的水平滚动条,但只显示datagrid2
的水平滚动条。 当用户滚动datagrid2
时,我需要以编程方式同步datagrid1
上的标题。
任何人都可以建议吗?
实现我有2个DataGrid中有相同数量的列的DataGridView需要隐藏滚动条,而滚动应该通过代码
Datagrid1
是只显示标题, Datagrid2
的是它下面显示的所有数据。实质上,2格表示需要同步以显示为1格。
我的问题是我需要隐藏datagrid1
的水平滚动条,但只显示datagrid2
的水平滚动条。 当用户滚动datagrid2
时,我需要以编程方式同步datagrid1
上的标题。
任何人都可以建议吗?
您可以设置DataGridViews的ScrollBasr属性以隐藏垂直滚动条
例如,在链接 http://msdn.microsoft.com/en-us/library/system.windows.forms.scrollbars
您可以设置VerticalScrollingOffset值来定位你想要的索引处的滚动条
dataGridViews1.ScrollBars = ScrollBars.None;
或看其他枚举值。处理第二个DGV中的滚动事件,并为第一个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;
}
试试这个..
dataGridViews1.ScrollBars = ScrollBars.None;
private void dataGridViews2_Scroll(object sender, ScrollEventArgs e)
{
int offSetValue = dataGridViews1.HorizontalScrollingOffset;
try
{
dataGridViews1.HorizontalScrollingOffset = offSetValue;
}
catch { }
dataGridViews1.Invalidate();
}
感谢Hatsoft,我明白了如何隐藏滚动条......如何同步它当用户滚动第二格? – Kamath 2012-07-17 21:32:11
@Kamath你的意思是,如果用户移动第二个网格的滚动条,甚至第一个网格滚动条必须移动? – HatSoft 2012-07-17 21:33:47
是的,这是正确的Hatsoft .. – Kamath 2012-07-17 21:52:39