private void _UpdateScrollList()
{
scrollNodeList = new List<TreeNode>();
int startNode = (int)(scrollIndex / ItemHeight) - 1;
if (startNode < 0) startNode = 0;
int nodesOnScreen = Height / ItemHeight + 3; // Magic number.
for (int i = startNode; i < startNode + nodesOnScreen && i < _nodeList.Count; i++)
{
if (_nodeList[i].Bounds.Y + _nodeList[i].Bounds.Height > 0 && _nodeList[i].Bounds.Y - (int)scrollIndex < Height)
{
scrollNodeList.Add(_nodeList[i]);
}
}
}