【发布时间】:2013-11-27 17:12:30
【问题描述】:
我有一个 DataGridview。它有一个 dgv_scroll 事件。在水平滚动中(在移动滚动条时),我需要它应该完全冲掉列的宽度。就像我们单击 Datagridview 滚动条的末端箭头(都在右端和左端)时一样。
【问题讨论】:
标签: c# winforms datagridview
我有一个 DataGridview。它有一个 dgv_scroll 事件。在水平滚动中(在移动滚动条时),我需要它应该完全冲掉列的宽度。就像我们单击 Datagridview 滚动条的末端箭头(都在右端和左端)时一样。
【问题讨论】:
标签: c# winforms datagridview
在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;
}
【讨论】: