DataGridViewは、(Excelのものに類似した)横置きのマナーで水平方向にスクロールすることは可能です。DataGridViewを使用してExcelと似た水平スクロール
スクロールがセル境界に達したときに列セルに沿ってスクロールする必要はありません(グリッドは次の列セルをスクロールする必要があります)。
DataGridViewは、(Excelのものに類似した)横置きのマナーで水平方向にスクロールすることは可能です。DataGridViewを使用してExcelと似た水平スクロール
スクロールがセル境界に達したときに列セルに沿ってスクロールする必要はありません(グリッドは次の列セルをスクロールする必要があります)。
FirstDisplayedScrollingColumnIndexプロパティを使用してください。助けてください。 FirstDisplayedScrollingColumnIndexを設定すると、指定された列インデックスの先頭にジャンプします。あなたがメソッドをオーバーライドしOnScrollして計算することができます
protected override void OnScroll(ScrollEventArgs e) {
base.OnScroll(e);
this.FirstDisplayedScrollingColumnIndex = Convert.ToInt32(this.HorizontalScrollBar.Value/this.Width); }
次
protected override void OnScroll(ScrollEventArgs e)
{
if (e.ScrollOrientation == ScrollOrientation.HorizontalScroll)
{
e.NewValue = GetColumnOffset(e.NewValue);;
}
base.OnScroll(e);
}
private int GetColumnOffset(int offset)
{
int start = 0, end = 0;
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;
}
オフセット:
何かのように