【发布时间】:2014-01-07 14:14:18
【问题描述】:
我有三个 DataGridView: dgvSTART; dgv过滤器; dgvEdit.
我已经编辑了 dgvSTART 的滚动事件,与答案 here 内联,如下所示:
dgvEdit.FirstDisplayedScrollingColumnIndex = dgvSTART.FirstDisplayedScrollingColumnIndex;
dgvFilter.FirstDisplayedScrollingColumnIndex = dgvSTART.FirstDisplayedScrollingColumnIndex;
这有效,但仅在 dgvSTART 的左侧列发生更改时滚动其他两个 DataGridView(即该列消失/出现在面板侧面)。
是否可以让所有数据网格视图作为一个滚动(忽略列边界)?
我认为使用 DataGridView 的 HorizontalScrollingOffset 属性可以做到这一点,但我的尝试没有成功:
private void dgvSTART_Scroll(object sender, ScrollEventArgs e)
{
//using matching the first column shown
dgvEdit.FirstDisplayedScrollingColumnIndex = dgvSTART.FirstDisplayedScrollingColumnIndex;
dgvFilter.FirstDisplayedScrollingColumnIndex = dgvSTART.FirstDisplayedScrollingColumnIndex;
try
{
//trying to use horizontalscrollingoffset
if (e.NewValue < e.OldValue)
{
dgvEdit.HorizontalScrollingOffset = dgvFilter.HorizontalScrollingOffset - 10;
dgvFilter.HorizontalScrollingOffset = dgvFilter.HorizontalScrollingOffset - 10;
}
else
{
dgvEdit.HorizontalScrollingOffset = dgvEdit.HorizontalScrollingOffset + 10;
dgvFilter.HorizontalScrollingOffset = dgvFilter.HorizontalScrollingOffset + 10;
}
}
catch (Exception) { }//do nothing with the exception
}
【问题讨论】:
标签: c# winforms datagridview