public void NextLine()
{
// New top line is one further down
int prevTopLine = _topLine;
_topLine = Math.Min(_topLine + 1, _endLine);
if (ScrollIntoView)
{
// Offset backwards so previous top line is starting position
_offset -= _itemSize.Height;
// If offset is still negative then need to check the begin line
if (_offset < 0)
{
// Ensure the old top line can be displayed during scrolling
if ((_beginLine == -1) || (_beginLine > prevTopLine))
_beginLine = prevTopLine;
}
// Start the scrolling
_scrollTimer.Start();
}
}