我有一个DataGridview.it有一个dgv_scroll事件。这里在水平滚动(移动滚动条)我需要它应该精确地冲洗列的宽度。就像我们点击Datagridview滚动条的结束箭头(都在右端结束左端)。
答案 0 :(得分:2)
在DataGridView滚动事件中添加此
if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
{
e.NewValue = GetColumnOffset(e.NewValue);
}
然后定义方法
private int GetColumnOffset(int offset)
{
int start = 0, end = 0;
DataGridViewColumnCollection Columns = dgvBudgetPeriods.Columns;
foreach (var column in Columns.Cast<DataGridViewColumn>().Where(c => !c.Frozen))
{
end = start + column.Width;
if (start <= offset && offset < end)
{
break;
}
start = end;
}
return start == offset ? offset : end;
}